gpt4 book ai didi

php - 序列化(数据)的哪个mysql列类型?

转载 作者:IT老高 更新时间:2023-10-29 00:19:50 24 4
gpt4 key购买 nike

我在 php 中序列化了很多要使用 mysql 存储在数据库中的数组。

最终字符串的长度可以在 2000 到 100,000+ 之间变化很大,我想知道最好的列类型是什么?

我目前将它设置为 LONGTEXT 但我觉得这有点过头了!数据库已经处于事件状态,大约有 300 万行,这是一个即将添加的新列。

谢谢

最佳答案

始终使用任何 BLOB data-type用于序列化数据,以便它不会被切断并以二进制安全的方式破坏序列化。如果最终字符串的长度没有最大值,那么您将需要 LONGBLOB。如果您知道数据不会填满 2^24 个字符,您可以使用 MEDIUMBLOBMEDIUMBLOB 大约为 16MB,而 LONGBLOB 大约为 4GB,所以我会说您使用 MEDIUMBLOB 非常安全。

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

关于php - 序列化(数据)的哪个mysql列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com