有人知道MySQL如何为"TEXT"或"BLOB"等字段分配磁盘空间
例如,当我将10kb字符串插入"TEXT"列时会发生什么?是分配了整个65kb数据还是只有10kb?
这在文档中进行了解释:http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
BLOB, TEXT L + 2 bytes, where L < 2^16
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24
LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32
Run Code Online (Sandbox Code Playgroud)
使用长度前缀加数据存储可变长度字符串类型.长度前缀需要一到四个字节,具体取决于数据类型,前缀的值是L(字符串的字节长度).例如,MEDIUMTEXT值的存储需要L个字节来存储该值加上三个字节来存储值的长度.
简而言之,整个65kb并没有浪费.