为什么 mysql workbench 告诉我:
SELECT * FROM file_results WHERE filter2_dec > 20 LIMIT 3
成本高于:
SELECT * FROM file_results WHERE filter2_dec > 20 ORDER BY filter2_dec DESC LIMIT 3
最佳答案
这很可能是因为在查询的 order 中您已将其指定为 DESC。这更容易找到,因为数据已经排序。而在您的其他声明中,它仍然必须遍历每个条目,然后限制为前 3 个。
order by 较少,因为您在该子句之后进行了限制。数据已经排序,因此更容易显示结果。而成本更高的语句必须自己执行此操作然后进行限制。这也会受到索引、DBMS 的影响,并且在实际环境中可能会有不同的表现。
关于mysql执行计划通过order by减少成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46237588/