Así es como manejo esto. Para la primera página que busco, uso
SELECT id, col, col, col
FROM output
ORDER BY id DESC
LIMIT 10000
Luego, en mi programa cliente (node.js) capturo el id
valor de la última fila del conjunto de resultados. Cuando necesito la página siguiente, hago esto.
SELECT id, col, col, col
FROM output
WHERE id < my_captured_id_value
ORDER BY id DESC
Esto explota el index. Y funciona correctamente incluso si ha eliminado algunas filas de la tabla.
Por cierto, probablemente desee un índice descendente si su primera página de paginación tiene las identificaciones más grandes. CREATE UNIQUE INDEX index_id ON output USING btree (ID DESC)
.
Consejo profesional SELECT *
es perjudicial para el rendimiento en bases de datos grandes. Enumere siempre las columnas que realmente necesita.