日期:2014-05-19  浏览次数:20416 次

char和varchar的问题
varchar在存储上比char节省磁盘空间
可是   char在效率上比varchar高
这是为什么(指效率上为什么char比varchar高)
百度上搜索的东西看了不是那么理解   所以希望结合你个人的理解指点我一下   谢谢

------解决方案--------------------
char是每个猪圈养固定数量的猪N.
varchar是每个猪圈养猪的数量不定.
而sqlserver管理这些猪,至少得先知道都养了多少猪吧,对于猪官char,那就好统计多了,知道多少猪圈就立刻知道猪的数量了;猪官varchar就不行了,他就得一个猪圈一个猪圈数,才行.

------解决方案--------------------
char是固定长度,每个值的大小是一样的,因此数据页的大小是固定的,存放的数据是不变的
而varchar是不固定的,每当修改这个字段的时候数据页的大小会发生变化,如果超过8k就会分成两页,这样是需要时间的,而且会产生大量碎片,搜索和比较这个字段的时候肯定也会变慢
------解决方案--------------------
呵呵
一楼德解释太生动了
二楼解释的更官方一些...