Mysql Text DataType是否保留任何内存空间

MyS*_*DBA 8 mysql memory text types

我想知道mysql TEXT数据类型是否保留任何空间,即使该行中没有数据?

我有点困惑.任何人都可以就此提供任何意见.

Eri*_*ric 20

通常,没有.text实际上,列存储在远离行的位置,因此它们本身不占用行的空间.相反,该行保留了一个指向text列的指针(它确实占用了空间,但只有4个字节-is(取决于系统)一行),但是在text填充它之前,列本身将保持为空.

现在,varchar列将在插入时为其最大值分配空间,但仅占用其内容所需的空间.char但是,列始终使用指定的空间.所以,这是每个列的短语"华夫饼"的样子:

varchar(15): 'waffles'
char(15):    'waffles        '
text:        'waffles'
Run Code Online (Sandbox Code Playgroud)

希望,这有帮助.

  • 这是否适用于所有类型的文本,即中文本、长文本等?我现在使用 inno-db 引擎。还想确认它是否进行任何类型的压缩,我的意思是,如果我在文本字段中仅放入 10 个字节,它会进行一些压缩还是获取整个 64 KB? (2认同)