数据库中的二进制数据,blob vs压缩的base64

Tyl*_*ong 15 database binary base64 blob

数据库中有一个名为blob的列类型,它用于存储二进制数据.

但通常情况下,我会看到压缩二进制数据,然后将二进制数据转换为base64,并将base64字符串存储为数据库中的varchar或text的解决方案.

Python代码示例:

import zlib, base64
base64_str = base64.b64encode(zlib.compress(binary_data, 9))
Run Code Online (Sandbox Code Playgroud)

因此有两种方法可以将二进制数据存储到数据库中:

  1. 作为blob
  2. 作为压缩base64

我的问题是:哪种方式更好,为什么?

Tyl*_*ong 16

似乎我必须回答我自己的问题.大多数情况下,将压缩的base64存储到数据库中并不是一个好主意.它比存储blob复杂.而且大多数时候,二进制文件小于base64字符串.

我只找到一个压缩base64有用的案例:你不能改变表模式,只有文本列,你必须将二进制数据存储到该表中.唯一可行的方法是将二进制转换为base64字符串.

  • 不知道你能回答并接受你自己的问题但做得好! (3认同)