【发布时间】:2011-05-14 04:18:23
【问题描述】:
如果文本很长,mysql 列的正确类型是什么? 我实际上正在使用一个列来存储一个非常大的序列化数组我应该使用什么? LONGBLOB?
【问题讨论】:
-
“非常长”并不是程序员描述某些数据预期长度的真正方式。
标签: mysql
如果文本很长,mysql 列的正确类型是什么? 我实际上正在使用一个列来存储一个非常大的序列化数组我应该使用什么? LONGBLOB?
【问题讨论】:
标签: mysql
我怀疑您存储了 4 GB 的文本。 mediumtext (16 MB) 或 text (64 KB) 类型应该足够了。
【讨论】:
听起来您已经回答了您的问题; LONGBLOB 可容纳 4GB;尽管您无法完全索引此字段,但请阅读下面的链接以查看有关指定 BLOB 数据类型长度的语法。另请注意,我相信最大索引长度约为 1000 字节。
【讨论】:
如果可以的话,使用 varchar,可能是二进制的。除非别无选择,否则请避免使用 text 和 blob 类型。
如果您使用 blob 或 text(而不是 car 或 varchar)类型,则会阻止使用内存中的临时表对结果进行排序。
无论如何,请避免将批量数据放在包含您经常访问的列的表中,因为您不希望用批量数据填充缓存,除非您确实需要这些数据。最好将其放在专用表中,并仅在需要时加入。或者将其作为两个查询进行,一个用于获取所需行的键,另一个用于检索它们。
这只是我的意见。联系 Oracle 公关人员了解公司的官方观点。
James Day,Oracle 的 MySQL 高级首席支持工程师
【讨论】: