L'impaginazione è difficile; il modello RDBMS non è adatto a un numero elevato di query di breve durata con scorrimento con stato. Come hai notato, l'uso delle risorse tende ad essere troppo elevato.
Hai le opzioni:
LIMIT
eOFFSET
- Utilizzo di un cursore
- Copiare i risultati in una tabella temporanea o in memcached o simili, quindi leggerli da lì
x > id
eLIMIT
Di questi, preferisco x > id
con un LIMIT
. Ricorda solo l'ultimo ID che hai visto e chiedi il prossimo. Se hai una sequenza che aumenta in modo monotono, questa sarà semplice, affidabile e per query semplici sarà efficiente.