如果只选择一行,前1快

时间:2011-07-05 11:41:44

标签: sql sql-server

数据库是否会在使用Top 1时以一条记录的速度打破选择循环?

那样 select top 1 * from customer where cusId = 1234

快于 select * from customer where cusId = 1234

cusId是唯一的,MSSql也明白如果没有top 1“更快”地做到这一点?

2 个答案:

答案 0 :(得分:4)

如果cusId是主键,则两者应该是相同的:性能。

编辑:

如果您的唯一索引无论如何都会返回1个结果,那么您只会增加TOP 1的开销。

如果您通过某种方式订购的产品比您只对一行感兴趣那么会有所不同。

MORE:

除非涉及表扫描且cusId根本没有索引,否则不会涉及循环。在这种情况下,TOP 1无论如何都无法帮助你。

答案 1 :(得分:0)

在我看来,select * from customer where cusId = 1234会更快...... b / c它的执行次数比第一次少......