3

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

4

3 回答 3

14

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

  • 通过简单地对它们进行 base64 编码并将生成的字符串存储为 VARCHAR 短片二进制数据(例如密码哈希)可以很好地工作
  • “非完全二进制”数据,例如带有偶尔不可打印的文档片段,可以转义并作为字符串排序
  • BLOB 数据类型允许您存储任意块的二进制数据,但我强烈建议不要使用它:将数据存储在文件中,然后将文件的路径存储为字符串类型。您从存储二进制数据中没有任何收获,因为 DB 无法在 DB 中“理解”。
于 2012-06-11T11:28:25.093 回答
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.
于 2013-12-07T01:08:08.433 回答
2

二进制数据可以存储在 MySQL 数据库中的BLOB字段中。BLOB是一个二进制大对象,可以保存可变数量的数据。

于 2012-06-11T11:24:46.140 回答