数据库中char和varchar区别

Posted how-to-say-how-to-do

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中char和varchar区别相关的知识,希望对你有一定的参考价值。

区别:

1)char长度是固定,而varchar长度是可变的;

比如:‘abc‘对于char(10)表示存储字符将占10个字节(包括7个空字符),而同样varchar(10)只占3个自己长度,10只是表示最大值,当存储的字符小于最大值时,按实际存储;(varchar2是把所有字符都按占两个字节处理,不管汉字、字母还是数字;另外varchar存空,varchar2则存null)

2)char的效率比varchar略高

取数据时候,char类型要用trim()去掉多余的空格,而varchar不用,尽管如此,char存取数据还是比varchar略快,因为其长度固定,方便程序的存储和查找;但同时也付出了空间的代价(以空间换取效率),而varchar以空间效率为首位。

 

怎么选用char?varchar?

varchar比char节省空间,但效率稍差一些,即若想获得效率,就要牺牲一定的空间,这也就是我们在数据库设计上常说的:以空间换取效率;

varchar虽然比char节省空间,但是如果一个varchar列经常被修改,而且每次修改的长度都不同,这会引起行迁移“现象,从而造成多余的I/O,是数据库设计要尽量避免的,在这种情况下cha会相对varchar更好一些。

以上是关于数据库中char和varchar区别的主要内容,如果未能解决你的问题,请参考以下文章

char和varchar的区别

char和varchar区别

数据库中char和varchar区别

mysql中char和varchar类型的区别

char和varchar在mysql中的效率怎样

oracle 中 char 、varchar 、 varchar2 的区别以及他们的优劣,啥时候用?懂的来