当每个条目都适合中等文本大小的字段时,使用MySQL长文本大小的字段有什么缺点?

dar*_*tch 28 mysql comparison longtext

当每个条目都适合中等文本大小的字段时,使用MySQL长文本大小的字段有什么缺点?

我之所以要问的原因是因为我有一些长文字大小的字段,最近意识到它们太大了,但后来因为"有什么危害?"而激励自己做出微小的变化.因此问题.

mu *_*ort 37

唯一的存储大小差异是为"此字段的字节数"分配的字节数.从精细手册:

TINYTEXT    L + 1 bytes, where L < 2^8  
TEXT        L + 2 bytes, where L < 2^16
MEDIUMTEXT  L + 3 bytes, where L < 2^24
LONGTEXT    L + 4 bytes, where L < 2^32
Run Code Online (Sandbox Code Playgroud)

所以a longtext将使用多于一个字节而不是mediumtext存储相同的文本.本手册的" 数据类型存储要求"部分提供了更多信息,"BLOB和TEXT类型"部分还提供了更多信息.

四种TEXT类型之间没有实际区别.

  • 这就是我的假设.唯一真正的区别是每行使用1个额外字节的空间.那是对的吗?如果是这样,我无法想象为什么除了longtext之外还有任何字段选项? (5认同)
  • @darkAsPitch:AFAIK 1个额外字节是唯一的区别.出于历史原因,可能有四种类型. (2认同)
  • 中文本和长文本之间是否没有读/写性能差异,而只有存储差异?如果是这样,4 个字节并不重要,您应该总是更喜欢长文本而不是中文本? (2认同)
  • 使用多种类型(不仅仅是长文本),您可以确保数据库/存储不会被错误/恶意输入淹没。 (2认同)