在表'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>
这些陈述之间的速度差异是多少还是没有差别?
答案 0 :(得分:0)
如果您的TestID列未编入索引,则varchar将慢于整数。但如果对该字段进行索引,则速度几乎没有差异。
P.S。如果你的字符串真的很长 - 索引会更笨重,所以在这种情况下使用整数将更优选