Retour aux FAQ Bases de données
CENTRE D’AIDE · FAQBases de données1 min de lecture

Pourquoi une requête doit-elle utiliser un tri stable ?

Sans ordre explicite, une requête ne garantit pas une séquence constante des lignes. Ajoutez un ORDER BY adapté à l’affichage voulu et un critère unique de départage si plusieurs lignes partagent la même valeur de tri.

Bases de données

Rendre l’ordre souhaité explicite

La base peut renvoyer les lignes selon son plan d’exécution ou leur disposition sur disque. Une même requête peut changer d’ordre après des écritures, changements d’index ou opérations de maintenance.

Pour la pagination, triez par un champ stable comme la date de création, puis par une clé unique. Un tri sur une valeur non unique peut déplacer les lignes ex æquo entre les pages et créer omissions ou doublons.

Stabiliser les limites de pagination

Gardez le même tri et les mêmes filtres pour chaque page. Si le jeu de données évolue pendant la lecture, préférez un curseur ou un instantané pris en charge plutôt qu’un simple décalage qui se déplace.

Testez les lignes ayant la même valeur de tri et les insertions entre les pages. Vérifiez que la séquence est assez déterministe pour l’application et que les limites s’appliquent après le tri voulu.

Retour aux FAQ Bases de données