关于varchar、text字段类型的长度问题探究结果
VARCHAR :varchar在mysql中满足最大行限制,也就是 65535(16k)字节,在mysql中使用 uft-8(mysql中的 utf-8 和我们正
常的编码utf-8不同)字符集一个字符占用三个字节,
②使用 utf-8mb4 字符集(mysql中 utf-8mb4 字符集也就是我们通常使用的 utf-8 字符集),mysql中使用 utf- 8mb4 字符集一个字符占用4个字节,所以 varchar 最大长度是
(65535-1)/4=16383 个字符(由于1字节额外占用空间开销,所以减1)。
TEXT :最大限制是64k,
采用 utf-8 字符集,(262144-1)/3=87381 个字符。
采用 utf-8mb4字符集,(262144-1)/4=65535 个字符。
MEDIUMTEXT :最大长度限制16M (16M-1)/3 = 5,592,405 个字符
采用 utf-8mb4字符集,(262144-1)/4=65535 个字符。
MEDIUMTEXT :最大长度限制16M (16M-1)/3 = 5,592,405 个字符
LONGTEXT :最大长度限制4G
VARCHAR测试
通过上面测试案例可以知道,当 VARCHAR 长度超过 21844 时就会报 1118 错误(因为超过 VARCHAR 长度)。所以在 mysql 中使用 utf-8 编码集
VARCAHAR 最大字符容量为21844个字符。同时也可以得出 ( 65535-(21845*3)=0 ) < 占用额外空间 < ( 65535-(21844*3)=3 )
INT测试
通过上面测试案例可以知道int类型占用额外空间
TEXT测试
通过上面测试案例可以知道 TEXT 类型占用额外空间,
如有不足,请大家指出。我只是编程小菜鸡,仅供采纳。
路漫漫其修远兮 吾将上下而求索 ~_~。