La pagination keyset (ou par curseur) charge la page suivante en filtrant sur la dernière valeur de clé vue, avec WHERE (date, id) < (...) ORDER BY ... LIMIT, au lieu de OFFSET. Elle reste rapide sur de grands volumes et stable si des lignes sont insérées. Elle exige un tri déterministe sur des colonnes indexées.
Exemple
SELECT * FROM articles
WHERE (cree_le, id) < ('2025-03-01 10:00', 120)
ORDER BY cree_le DESC, id DESC LIMIT 20;