关于mysql varchar类型的长度

Posted zwsblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql varchar类型的长度相关的知识,希望对你有一定的参考价值。

char

定长  最多255字符  末尾的空格会被默认删除

何时选用char类型储存?

1 数据长度近似 如手机号 身份证 MD5加密后的值

2 短字符串 相对varchar可以节约一个储存长度的空间

3 频繁更新的字段  相对于varchar不会产生长度变化也就不会产生存储碎片

 

varchar

varchar类型与char类型不同 为变长字符串

在字符长度不超过255时 使用一个字节存储长度

超过255时用两个字节存储长度

每行的varchar总和不得超过65535字节 如果想存储更长的字符串建议选用text格式

既然varchar是变长的 而且不超过255字符时都是用一个字节来存储长度 那么是不是意味着varchar(4) 与varchar(100) 在存储四个字符长度的内容 比如 "abcd"时是完全一样的呢?

  mysql在查询时对于varchar字段在内存中是采用固定宽度而不是储存时的变长宽度 尤其是查询时创建的隐形临时表 所以在选择字段属性时还是适可而止 根据自己的业务来选择最合适的并且最小的长度 从而来提高查询速度 减少数据库服务器的开销

 

何时选用varchar列来储存?

1 字符串列最大长度比平均长度大很多的列  充分发挥变长的特点

2 字符串列较少被更新的列  因为innodb引擎一个存储页为16k 频繁的更新变长字段可能导致存储页的分裂 产生存储碎片 

3 多字节字符集 如utf-8 

以上是关于关于mysql varchar类型的长度的主要内容,如果未能解决你的问题,请参考以下文章

mysql中char,varchar与text类型的区别和选用

mysql varchar最大是多少?

mysql varchar 最大可以设置多少

关于SQL Server 2000 Varchar长度的一个问题!!请高手解答

在 MySQL 中声明值大于 255 的 VARCHAR 是不是明智?

mysql7 设置varchar 长度