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

时间:2011-04-13 17:33:41

标签: mysql database types

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

谢谢!

4 个答案:

答案 0 :(得分:20)

就所需的存储空间而言,最好使用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. The CHAR and VARCHAR Types

更多信息:What's the difference between VARCHAR and CHAR?

答案 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)。

答案 2 :(得分:0)

然而,我会问,varchar和char之间的效率差异值得吗?似乎任何性能提升最多都可以忽略不计。

答案 3 :(得分:0)

在存储中,VARCHAR(255)非常智能,只能存储您在给定行上所需的长度,而CHAR(255)总是存储255个字符。