日期:2014-05-18  浏览次数:20370 次

关于char和varchar的问题
听X老师说在知道length的情况下可以用char数据类型,可以Y老师说无论如何都用varchar数据类型,使得我蛮疑惑的,究竟是照X老师说的还是Y老师说的做呢?

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

由于char是以固定长度的,所以它的速度会比varchar快得多!

主键固定长度的一般可以考虑用char
 
------解决方案--------------------
另外补充一点,如果你的服务器使用的是英文版的操作系统的话,建议采用nvarchar