将图像存储为 base64string (varchar(max)) 或 varbinary

fes*_*fes 2 sql

各自的优点和缺点是什么?

我的要求是:

  1. 我希望能够加密图像
  2. 通过网络服务器(RESTful API)在移动设备上轻松访问
  3. 通过 SQLLite 等本地数据库在移动设备上轻松访问

我在服务器端使用的数据库是MS SQL 2005。我相信SQLLite和MS SQL 2005可以支持varchar和varbinary(sqllite上的BLOB)

And*_*mar 5

Base64 在一个字节中仅使用 8 位中的 6 位。它可以追溯到电子邮件通过不安全的 7 位线路传输的时代。

那时,您会将图像存储为二进制 blob,因为这样需要的存储空间减少了 33%。然后,当客户端请求编码字符串时,您可以即时转换它base64。转换为 Base64 的成本非常低。

这在今天仍然有意义——将其存储为binary,并像客户端请求的任何内容一样传输它。