MySQL文本类型并使用更大的大小.它有效吗?

Jan*_*kie 7 mysql database field

我正在设计一个存储文档的数据库.其中一些文件的时钟刚刚超过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
Run Code Online (Sandbox Code Playgroud)

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

Joa*_*son 11

MySQL关于存储要求的文档看来,您不必过分担心使用较长的文本类型;

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

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

  • 基本上,您可以将 TEXT 类型视为磁盘上文件的“指针”。各种文本(MEDIUMTEXT、TINYTEXT 等)用作数据库引擎的存储策略。 (2认同)