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

Database 数据库中的二进制数据,blob与压缩base64,database,binary,base64,blob,Database,Binary,Base64,Blob,数据库中有一个名为blob的列类型,用于存储二进制数据 但通常情况下,我看到的解决方案是压缩二进制数据,然后将二进制数据转换为base64,并将base64字符串作为varchar或文本存储在数据库中 Python代码示例: import zlib, base64 base64_str = base64.b64encode(zlib.compress(binary_data, 9)) 因此,有两种方法将二进制数据存储到数据库中: 一团 作为压缩base64 我的问题是: 哪种方式更好?为什么?

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

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

Python代码示例:

import zlib, base64
base64_str = base64.b64encode(zlib.compress(binary_data, 9))
因此,有两种方法将二进制数据存储到数据库中:

  • 一团
  • 作为压缩base64
  • 我的问题是:
    哪种方式更好?为什么?

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


    我发现只有一种情况下压缩的base64是有用的:您不能更改表模式,并且只有文本列,因此您必须将二进制数据存储到该表中。唯一可能的方法是将二进制转换为base64字符串。

    我不明白为什么会有人使用方法2。它引入了不必要的复杂性,并两次混淆数据。但是,我不会发布这个答案,因为我没有任何确凿的证据表明压缩base64比
    BLOB
    更有效。我不知道你可以回答并接受自己的问题,但做得很好@AshfaqHussain,在SO(堆栈溢出)中,这是一种被广泛接受的模式。一个人可以回答自己的问题并接受它,只要它是一个有效的解决方案。