数据库中有一个名为blob的列类型,它用于存储二进制数据。
但是,我经常看到压缩二进制数据,然后将二进制数据转换为base64,并将base64字符串存储为数据库中的varchar或text的解决方案。
Python代码示例:
import zlib, base64
base64_str = base64.b64encode(zlib.compress(binary_data, 9))
因此,有两种方法可以将二进制数据存储到数据库中:
我的问题是: 哪种方式更好,为什么?
答案 0 :(得分:16)
似乎我必须回答我自己的问题。大多数情况下,将压缩的base64存储到数据库中并不是一个好主意。它比存储blob复杂。大多数情况下,二进制文件小于base64字符串。
我只找到一个压缩base64有用的案例:你不能改变表模式,只有文本列,你必须将二进制数据存储到该表中。唯一可行的方法是将二进制转换为base64字符串。