【发布时间】:2011-12-22 19:05:44
【问题描述】:
我有一个关于 SQL 查询速度快多少的问题
SELECT * FROM Persons WHERE City='Sandnes'
来自查询
SELECT * FROM Persons
是吗?
来自网络上的各种来源的共识是,通过更过滤的查询可以提高性能,但它们似乎从未变得具体。
我知道答案取决于数据库有多大,所以假设有三个数据库,一个只有 1000 条记录,第二个有 1M 记录,第三个有 10M 记录。假设记录只有几个字节大,所以这些数据都适合服务器 RAM。
我可能会看到速度上的差异有多大,比如百分比?即使是一个大概的猜测也是有帮助的。
我正在使用 Microsoft SQL Server,但这不重要。
【问题讨论】:
-
看起来你应该自己衡量一下。
-
如果我知道答案,我不会问社区。 你有没有衡量过它,或者只是凭信心接受它?
-
对地址表做了一些冒烟测试,100 万行;只是一个普通的
SELECT *需要 21'350 次读取和 13'695 毫秒的执行时间;SELECT * WHERE City = ....提供 1'690 次读取和 169 毫秒的执行时间。 -
谢谢马克!这就是为什么我不是一个真正的 SQL 程序员,而是在电视上玩一个……并在这里问这个问题! :)