哪种 mysql 列类型用于序列化(数据)?

2024-02-10

我正在 php 中序列化大量数组,这些数组将使用 mysql 存储在数据库中。

最终字符串的长度可能有很大差异,从 2000 到 100,000+ 之间,我想知道最好的列类型是什么?

我目前将其设置为LONGTEXT但我觉得这太过分了!该数据库已经处于活动状态,大约有 300 万行,这是一个新列,很快就会添加。

Thanks


始终使用任何BLOB数据类型 https://dev.mysql.com/doc/refman/5.0/en/blob.html用于序列化数据,使其不会被切断并以二进制安全的方式破坏序列化。如果最终字符串的长度没有最大值,那么您将需要LONGBLOB。如果您知道数据不会填充 2^24 个字符,您可以使用MEDIUMBLOB. MEDIUMBLOB大约 16MB 而LONGBLOB大约是 4GB 所以我想说你很安全MEDIUMBLOB.

为什么是二进制数据类型? MySQL 中的文本数据类型具有编码。字符编码将影响序列化数据在不同编码之间的转置方式。例如。当存储为 Latin-1 但随后读取为 UTF-8 时(例如,由于数据库驱动程序连接编码设置),序列化数据可能会被破坏,因为二进制偏移量确实发生了偏移,但序列化数据并未针对此类偏移进行编码。 PHP的序列化字符串是二进制数据,没有任何特定的编码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

哪种 mysql 列类型用于序列化(数据)? 的相关文章