VARCHAR 和 TEXT 长度问题

关于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 类型占用额外空间,                              

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



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值