Inilah cara saya menangani ini. Untuk halaman pertama yang saya ambil, saya menggunakan
SELECT id, col, col, col
FROM output
ORDER BY id DESC
LIMIT 10000
Kemudian, dalam program klien saya (node.js) saya menangkap id
nilai dari baris terakhir dari kumpulan hasil. Ketika saya membutuhkan halaman berikutnya, saya melakukan ini.
SELECT id, col, col, col
FROM output
WHERE id < my_captured_id_value
ORDER BY id DESC
Ini mengeksploitasi index. Dan itu berfungsi dengan benar bahkan jika Anda telah menghapus beberapa baris dari tabel.
Omong-omong, Anda mungkin menginginkan indeks turun jika halaman pagination pertama Anda memiliki id terbesar. CREATE UNIQUE INDEX index_id ON output USING btree (ID DESC)
.
Kiat profesional SELECT *
berbahaya bagi kinerja pada database besar. Selalu cantumkan kolom yang benar-benar Anda butuhkan.