MySQL:比使用varchar字段更快的整数比较?

时间:2012-04-02 20:39:56

标签: mysql indexing

在表'test'中,我有一个整数字段TestID,带有索引。

SELECT * FROM test WHERE TestID=1234

SELECT * FROM test WHERE TestID='1234'

SELECT * FROM test WHERE TestID=COALESCE(1234, 0)

SELECT * FROM test WHERE TestID=COALESCE('1234', '')

我现在使用第二个选项,因为在我的应用程序中1234部分是动态插入的,也可能是NULL或空字符串,我不希望语​​句因此而失败。< / p>

这些陈述之间的速度差异是多少还是没有差别?

1 个答案:

答案 0 :(得分:0)

如果您的TestID列未编入索引,则varchar将慢于整数。但如果对该字段进行索引,则速度几乎没有差异。

P.S。如果你的字符串真的很长 - 索引会更笨重,所以在这种情况下使用整数将更优选