为什么sql命令很慢?

时间:2016-03-01 22:11:43

标签: mysql sql postgresql

查看v_one

查询1:SELECT id FROM v_one LIMIT 2:52毫秒

查询2:SELECT id FROM v_one ORDER BY id LIMIT 2:2413 ms

查看v_two

查询3:SELECT id FROM v_two LIMIT 2:260毫秒

查询4:SELECT id FROM v_two ORDER BY id LIMIT 2:260毫秒

为什么在视图v_one上,当使用order by时,到目前为止的时差?

任何帮助非常感谢

干杯

2 个答案:

答案 0 :(得分:2)

除了GordonLinoff所说的索引之外,表格大小会影响订购数据所需的时间。所以在比较查询时要小心。

  • Query1没有ORDER BY所以只需要前两个元素
  • Query2很慢,因为ORDER BY需要时间,特别是如果表格较大而不是id的索引。
  • Query3和Query4,即使不同的时间有可能因为这个视图有索引或者表格很小。

最后,您可以使用EXPLAIN ANALYZE来比较两个查询之间的查询计划

EXPLAIN ANALYZE
SELECT id FROM v_one LIMIT 2

答案 1 :(得分:0)

查询引擎首先对数据进行排序,这样如果没有索引则需要更长的时间。限制数据后,限制会限制结果。

希望这有帮助。