在MySQL表中使用INT宽度会对联接产生任何影响吗?

时间:2011-05-04 12:52:32

标签: mysql database-design int

MySQL允许您为int列指定宽度,例如: INT(9) INT(10) INT(11) 根据{{​​3}},它是“显示宽度元数据”,只有在你启用了“zerofill”时才由MySQL使用。

我的问题是这个宽度实际上对连接的速度有什么影响吗? (它不应该,但我不是100%相信自己)

例如,以下伪代码:

SELECT a.field FROM a, b WHERE a.int(10)=b.int(10) WHERE b.anotherfield=?

比以下更快/更好:

SELECT a.field FROM a, b WHERE a.int(8)=b.int(11) WHERE b.anotherfield=?

混合宽度整数还有其他“问题”吗? (外键等)。我只是想知道是否值得规范我们所有的整数宽度。

1 个答案:

答案 0 :(得分:2)

不要接受我的话,但我敢打赌它与表现毫无关系。这只是显示宽度。请参阅http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.htmlhttp://alexander.kirk.at/2007/08/24/what-does-size-in-intsize-of-mysql-mean/