您的位置:首页 > 其它

VARCHAR 和 TEXT 长度问题

2018-01-06 22:18 274 查看
关于varchar、text字段类型的长度问题探究结果
VARCHAR :varchar在mysql中满足最大行限制,也就是 65535(16k)字节,在mysql中使用 uft-8(mysql中的 utf-8 和我们正
常的编码utf-8不同)字符集一个字符占用三个字节,

①使用 utf-8 字符编码集  varchar 最大长度是   (65535-1)/3=21844  个字符(由于会有1字节的额外占用空间开销,
所以减1)。
②使用 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 个字符

LONGTEXT :最大长度限制4G

VARCHAR测试
            


             通过上面测试案例可以知道,当 VARCHAR 长度超过 21844 时就会报 1118 错误(因为超过 VARCHAR 长度)。所以在 mysql 中使用 utf-8 编码集 
              VARCAHAR 最大字符容量为21844个字符。同时也可以得出                            ( 65535-(21845*3)=0 ) <  占用额外空间  < ( 65535-(21844*3)=3 )

INT测试
            


      通过上面测试案例可以知道int类型占用额外空间
       


TEXT测试
        


        通过上面测试案例可以知道 TEXT 类型占用额外空间,                              



如有不足,请大家指出。我只是编程小菜鸡,仅供采纳。
路漫漫其修远兮 吾将上下而求索 ~_~。

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: