Вашата заявка ще трябва да отброи първите 90M
записи, за да получите следващите 100
, така че едва ли има място за подобрение.
Не виждам ORDER BY
клауза във вашата подзаявка, но вероятно я имате. В този случай може да искате да създадете индекс върху него.
И един въпрос:вашите потребители наистина ли кликват върху 900K
страници, преди да се оплачете от ефективността?
Актуализация:
Ако имате нужда от най-новата страница, трябва да пренапишете своя ORDER BY
колона в низходящ ред:
SELECT *
FROM (
SELECT rownum rnum, f.*
FROM findings f
ORDER BY
record_ordering_column DESC
)
WHERE rnum > 900
AND rownum <= 100
и създайте индекс на record_ordering_column
Имайте предвид, че смесвам rownum
от вложените заявки за подобряване на производителността.
Вижте тази статия в моя блог за повече подробности: