char和varchar

简介: char和varchar

       char和varchar类型类似,都用来存储字符串,不同的是它们的存储和检索方式。

       对比:

       1、char属于固定长度的字符类型,varchar属于可变长度的字符类型。char和varchar定义4个字节。它们在存储1个字节的字符串时,实际的存储空间,char是4个字节,varchar是1个字节。varchar更省空间。

       2、char在检索时会删除尾部的空格,varchar在检索时不会。

       选用原则:

由于char是固定长度的,所以它的处理速度比varchar快得多,缺点是浪费存储空间。因此程序要对尾部空格进行处理,所以对于那些长度变化不大并且对查询速度有较高要求的数据可以考虑使用char类型存储。

       不同的存储引擎对char和varchar的使用原则不一样:

       1、MyISAM存储引擎:建议使用固定长度的数据列代替可变长度的数据列。

       2、MEMORY存储引擎:目前都使用固定长度的数据行存储,因此无论使用char或varchar列都行。两者都是作为char类型处理的。

       3、InnoDB存储引擎:建议使用Varchar类型。对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的CHAR列不一定比使用可变长度varchar列性能要好。这时候主要的性能因素是数据行的存储总量。char平均占用的空间比varchar多,使用varchar来最小化需要处理的数据行的存储总量和I/O是比较好的。

       以上内容参照《深入浅出mysql》

       总结:

       数据类型的对比选择在设计数据库时会使用。常用的需要积累。


相关文章
|
存储 关系型数据库 MySQL
面试时被这样一个问:”存储MD5值应该用VARCHAR还是用CHAR?
一个5年工作经验的小伙伴,在面试的时候被这样一个问题。说”存储MD5值应该用VARCHAR还是用CHAR“,他一时间不只如何选择,感觉用VARCHAR也可以,用CHAR也行。希望我来帮忙分析一下。
122 0
|
4月前
|
存储 数据管理 数据库
|
7月前
|
存储 关系型数据库 MySQL
MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%🚀
本篇文章来讨论MySQL字段的字符类型选择并深入实践char与varchar类型的区别以及在千万数据下的性能测试
MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%🚀
|
存储 SQL 数据库
char、varchar、nvarchar、text的区别
char、varchar、nvarchar、text的区别
106 0
|
7月前
|
存储 机器学习/深度学习 关系型数据库
mysql中char和varchar的区别
mysql中char和varchar的区别
194 1
|
7月前
|
存储 数据库
5. CHAR和VARCHAR的区别?
`CHAR`和`VARCHAR`在数据库中有所不同:`CHAR`长度固定,用空格填充,存储效率高,英文占1字节,汉字占2字节;而`VARCHAR`长度可变,节省空间,英文和汉字都占2字节。
88 0
|
7月前
|
存储 SQL NoSQL
面试题:char和varchar的区别?
字节面试题:char和varchar的区别?
139 0
|
存储
char和varchar的区别(秒懂!)
char和varchar的区别(秒懂!)
120 0
|
7月前
|
存储 关系型数据库 MySQL
MySQL之varchar和char的区别
MySQL之varchar和char的区别
74 0
|
7月前
|
存储 关系型数据库 MySQL
MySQL 总结char与varchar的区别
MySQL 总结char与varchar的区别
75 0