如何在MySQL中存储二进制数据

Mar*_*han 2 mysql binary data-storage

如何在MySQL数据库中存储二进制数据?

Eug*_*eck 9

这个问题不是那么直接回答,因为它听起来:有很多不同的二进制数据使用模式,每个都有自己的警告和优点和缺点.让我试着总结一下:

  • 简短的二进制数据(如密码哈希)通过简单的base64编码并将生成的字符串存储为VARCHAR,可以很好地工作
  • "不完全二进制"数据,例如偶尔不可打印的文档snipplet可以转义并作为字符串存储
  • BLOB数据类型允许您存储任意数据块的二进制数据,但我强烈建议不要使用它:将数据存储在文件中,然后以String类型存储文件的路径.你不会从存储二进制数据中获得任何东西,而数据库在数据库中并没有"理解".


IEn*_*ble 6

我建议LONGBLOB将文件存储在MySQL. 这完全取决于什么样的二进制文件和您的应用程序。

TINYBLOB - A BLOB column with a maximum length of 255 (2^8 - 1) characters.
BLOB - A BLOB column with a maximum length of 65,535 (2^16 - 1) characters.
MEDIUMBLOB - A BLOB column with a maximum length of 16,777,215 (2^24 - 1) characters.
LONGBLOB - A BLOB column with a maximum length of 4,294,967,295 (2^32 - 1) characters.
Run Code Online (Sandbox Code Playgroud)