我有一个SQL查询,看起来像这样:
SELECT * FROM(
SELECT
...,
row_number() OVER(ORDER BY ID) rn
FROM
...
) WHERE rn between :start and :end
Run Code Online (Sandbox Code Playgroud)
从本质上讲,正是ORDER BY部分减慢了速度.如果我要删除它,EXPLAIN成本会下降一个数量级(超过1000倍).我试过这个:
SELECT
...
FROM
...
WHERE
rownum between :start and :end
Run Code Online (Sandbox Code Playgroud)
但这并没有给出正确的结果.有没有简单的方法来加快速度?或者我是否需要花更多时间使用EXPLAIN工具?