有人知道MySql如何为“文本”和“blob”分配内存,以防我插入的数据小于列的最大大小吗?
例如,当我在“文本”列中插入50K字符串时会发生什么情况?整个65K列是否已分配?
最佳答案
文本数据类型有四种不同的大小
*文本
*文本
*中文本
*长文本
它们可以存储的值的最大长度不同。所有类型都是可变长度类型,因此单个值需要与值的长度(以字符为单位)相等的存储空间,再加上1到4个字节来记录值的长度。未删除或添加尾随空格以进行存储或检索。
对于可变长度(VARCHAR,TEXT)列,MySQL只为每个存储值分配所需的空间量。
即,对于文本数据类型Number of characters
+2 bytes
,最大长度不超过65535个字符