Gunakan kursor sebagai gantinya. Menggunakan OFFSET dan LIMIT cukup mahal - karena pg harus mengeksekusi kueri, memproses, dan melewati baris OFFSET. OFFSET seperti "lewati baris", itu mahal.
Kursor memungkinkan iterasi pada satu kueri.
BEGIN
DECLARE C CURSOR FOR SELECT * FROM big_table;
FETCH 300 FROM C; -- get 300 rows
FETCH 300 FROM C; -- get 300 rows
...
COMMIT;
Mungkin Anda dapat menggunakan kursor sisi server tanpa menggunakan pernyataan DECLARE secara eksplisit, hanya dengan dukungan di psycopg (bagian pencarian tentang kursor sisi server).