Varchar与char的区别

来源:互联网 发布:奥卡姆剃刀 知乎 教师 编辑:程序博客网 时间:2024/04/29 19:16

Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,
就是把它填满为100个字节)。

由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格
去掉!
本篇文章来源于 IT中国 转载请以链接形式注明出处 网址:http://www.it86.cc/develop/2008/0312/19957.shtml

 

还有一个问题你要注意  
  表中只要存在一个varchar类型的字段,那么所有的char字段都会自动变成varchar类型;  
  但是,长度在4以内的char类型不会转换成varchar,反而是长度在4以内的varchar类型会被转换成char类型。  
  也就是说,MySQL设计的时候,也已经考虑了速度和空间的问题,并且也建议不要让这两种定长和变长的类型同处一个表。这个是MySQL的特色,你可以自己做试验。  
  对于我们来说,该怎么用就怎么用,不必强求速度或者空间。Top
8 楼hzbigdog(苦命的程序员)回复于 2005-10-07 01:27:44 得分 0

char适合与保存短字符内容,比如说是   "YS","AD","OK","NO","DL",之类的标志控制符  
  用于检索方面的,但是前提是,必须是定长的字符才能够保证效率,  
  vchar适合保存容量较大的内容。不适合保存标志类信息,他的优势是节省存储空间。  
  为了提高效率吧vchar转传撑char没有什么意义

 

 

原创粉丝点击