347 shaares
3 liens privés
3 liens privés
Saviez-vous que la pagination par offset est très complexe mais facile à éviter ?
La clause offset demande à la base de données d'ignorer les N premiers résultats d'une requête. Cependant, la base de données doit toujours récupérer ces lignes du disque avant de pouvoir renvoyer les lignes suivantes.
Ce n'est pas un problème provenant de l'implémentation, c'est à la base du concept même d'offset :
… les lignes sont tout d'abord triées suivant la <clause order by>, puis sont filtrées en supprimant le nombre de lignes indiqué dans la <clause offset> à partir du début…
SQL:2023, Part 2, §4.17.3 Derived tables
Autrement dit, les gros décalages imposent un long travail à la base de données, qu'elle soit SQL ou NoSQL.