我有一个看起来像这样的 SQL 查询:
SELECT * FROM(
SELECT
...,
row_number() OVER(ORDER BY ID) rn
FROM
...
) WHERE rn between :start and :end
本质上,是 ORDER BY 部分让事情变慢了。如果我要删除它,EXPLAIN 成本会下降一个数量级(超过 1000 倍)。我试过这个:
SELECT
...
FROM
...
WHERE
rownum between :start and :end
但这并没有给出正确的结果。有什么简单的方法可以加快速度吗?还是我必须花更多时间使用 EXPLAIN 工具?