对于一个或两个字符的字符串,哪个更有效:CHAR(2)还是VARCHAR(2)?

Jam*_*mes 15 mysql database types

一个非常快的 - 在MySql中存储可能是一个或两个字符如CHAR(2)或VARCHAR(2)的数据更有效吗?

谢谢!

Mar*_*ers 21

就所需的存储空间而言,最好使用CHAR(2),因为VARCHAR(2)类型将需要一个额外的字节来存储长度:

Value   CHAR(2)  Storage Required  VARCHAR(2)  Storage Required
''      '  '     2 bytes           ''          1 byte          
'a'     'a '     2 bytes           'a'         2 bytes         
'ab'    'ab'     2 bytes           'ab'        3 bytes         

10.4.1.CHAR和VARCHAR类型了解更多详细信息.

更多信息:VARCHAR和CHAR之间有什么区别?


use*_*0.1 5

在空间方面,CHAR(2)更好.请参阅:http://dev.mysql.com/doc/refman/5.0/en/char.html

如果你更像CHAR(100)vs VARCHAR(100),那么空间使用效果更好取决于你拥有的数据.

在任何情况下,就查询的效率而言,当您有能力获得它们时,最好有固定长度的记录(DB可以更好地针对固定长度列进行优化).

所以CHAR(2)在空间和时间方面看起来像是胜过VARCHAR(2).