【发布时间】:2016-10-21 15:59:59
【问题描述】:
假设我有一个简单的 select * from table;查询我事先知道有多少条目存在的地方。假设是 100。
这三个调用之间是否存在性能差异?
1) 从表中选择 *;
2) select * from table limit 100;
3) select * from table limit 1000;
每个调用都将返回正好 100 行。不同的限制值或没有限制值会影响调用的速度吗?
【问题讨论】:
-
我投票结束这个问题,因为它的性能很容易测试。
-
您必须尝试每个查询并测量结果才能确定。但我猜如果限制等于或超过实际记录数,则性能差异不会很大。
-
我认为设置限制很重要。检查this
-
我怀疑会有很多差异。如果添加 LIMIT 语句会稍微慢一些,因为它必须确认返回的行数仍然低于该限制。但我强烈怀疑它甚至会接近引人注目。
-
您不会看到此查询之间存在有价值的差异。这不是影响您的表现的
limit,而是offset。我同意@JustinNiessner 的观点,我认为你写这个问题的时间比你自己写一个简单的 PHP 脚本来测试它的时间要多。