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

时间:2011-11-21 10:23:32

标签: database binary base64 blob

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

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

Python代码示例:

import zlib, base64
base64_str = base64.b64encode(zlib.compress(binary_data, 9))

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

  1. as blob
  2. as compressed base64
  3. 我的问题是: 哪种方式更好,为什么?

1 个答案:

答案 0 :(得分:16)

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

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