问题描述
|
一种非常快速的方法-在MysqL中将可能是一两个字符的数据存储为CHAR(2)或VARCHAR(2)效率更高吗?
谢谢!
解决方法
就所需的存储空间而言,最好使用CHAR(2),因为VARCHAR(2)类型将需要一个额外的字节来存储长度:
值CHAR(2)需要存储VARCHAR(2)需要存储
\'\'\'\'2字节\'\'1字节
\'a \'\'a \'2字节\'a \'2字节
\'ab \'\'ab \'2字节\'ab \'3字节
见10.4.1。有关更多详细信息,请参见CHAR和VARCHAR类型。
更多信息:VARCHAR和CHAR有什么区别?
,就空间而言,CHAR(2)更好。看到这个:http://dev.mysql.com/doc/refman/5.0/en/char.html
如果您对CHAR(100)和VARCHAR(100)的使用时间更长,则空间使用情况更好取决于所拥有的数据。
无论如何,就查询效率而言,在您有能力拥有固定长度记录的情况下,始终最好使用固定长度的记录(数据库可以针对固定长度的列进行更好的优化)。
因此,就空间和时间而言,CHAR(2)似乎胜过VARCHAR(2)。
,我想问一下,varchar和char之间的效率差异值得吗?似乎任何性能提升至多都是微不足道的。
,在存储中,ѭ0非常聪明,只可以存储给定行上所需的长度,而
CHAR(255)
总是存储255个字符。