8

我正在设计一个数据库来存储文档。其中一些文档的大小刚好超过 64kb,没有一个大于 128kb。看来我唯一的办法是指定我的文本类型,MEDIUMTEXT其最大大小为 16MB。对于我正在做的事情来说,这似乎有点过头了,尤其是因为我每天可能要存储一百个文档。我想我的问题是我是否会遇到性能下降,因为 MEDIUMTEXT 比 TEXT 大得多。我不太了解 MySQL 内部结构,不知道磁盘或内存上是否有一些奇怪的分配问题会回来咬我。当然,我们可以在像 MongoDB 这样的现代工具中完成这一切,但我无法对此表示赞同。:-(
万一其他人在未来遇到这个问题,我想我会记下 MySQL 中的文本类型及其最大大小以供参考。

TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB

任何人的建议将不胜感激。珍妮

4

1 回答 1

14

MySQL 的存储要求文档来看,您似乎不需要太担心使用更长的文本类型;

L 表示给定字符串值的实际长度(以字节为单位)。
...
例如,存储 MEDIUMTEXT 值需要 L 个字节来存储值加上三个字节来存储值的长度。

换句话说,mediumtext 不需要存储每个值的最大最大长度,它只需要您要存储的数据的实际长度 + 3 个字节。

于 2013-03-05T15:39:11.690 回答