任何人都知道 MySql 如何为“文本”和“blob”分配内存,以防我插入的数据小于列的最大大小?
例如,当我将 50K 字符串插入“文本”列时会发生什么?是否分配了整个 65K 列?
最佳答案
TEXT 数据类型有四种不同的大小 *小文字 *文本 *中文 *长文本
它们可以存储的值的最大长度不同。都是变长类型,所以一个单独的值需要存储等于该值的长度(以字符为单位),再加上 1 到 4 个字节来记录该值的长度。不会为了存储或检索而删除或添加尾随空格。
对于可变长度(VARCHAR、TEXT)列,MySQL 仅为每个存储值分配所需的空间量。
即对于文本数据类型 Number of characters
+ 2 bytes
并且最大长度可达 65,535 个字符
关于MySql内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925797/