MySQL:为什么varchar(254)而不是varchar(255)?

时间:2012-04-06 12:35:18

标签: mysql database varchar

为什么这么多开发人员在创建MySQL表时将varchar设置为254而不是255?

证明发生这种情况:mysql varchar 254

2 个答案:

答案 0 :(得分:13)

您的Google查询已经提供了提示。第一个点击之一就是:

https://www.vbulletin.com/forum/project.php?issueid=32655

它基本上说,FULLTEXT上的VARCHAR(255)索引需要两倍于VARCHAR(254) FULLTEXT索引的空间。还有一些其他的膨胀。

我认为这比在数据表中保存一个字节重要得多。

答案 1 :(得分:6)

对于小于或等于255的字段,

varchar字段需要n + 1个字节 字段>所需的n + 2个字节255

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

它应该设置为255,我假设开发人员认为他们将从254中保存一个额外的字节,但255是标准的