Zde je návod, jak to řeším. Pro první stránku, kterou načtu, používám
SELECT id, col, col, col
FROM output
ORDER BY id DESC
LIMIT 10000
Poté ve svém klientském programu (node.js) zachytím id
hodnotu z posledního řádku sady výsledků. Když potřebuji další stránku, udělám to.
SELECT id, col, col, col
FROM output
WHERE id < my_captured_id_value
ORDER BY id DESC
To zneužívá index. A funguje správně, i když jste z tabulky odstranili některé řádky.
Mimochodem, pravděpodobně budete chtít sestupný index, pokud má vaše první stránka stránkování největší ID. CREATE UNIQUE INDEX index_id ON output USING btree (ID DESC)
.
Tip pro profesionály SELECT *
je škodlivý pro výkon ve velkých databázích. Vždy uveďte sloupce, které skutečně potřebujete.