非常快 - 在MySql中存储可能是一个或两个字符如CHAR(2)或VARCHAR(2)的数据会更有效吗?
谢谢!
答案 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。
答案 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)
答案 3 :(得分:0)
在存储中,VARCHAR(255)
非常智能,只能存储您在给定行上所需的长度,而CHAR(255)
总是存储255个字符。