Un contre-exemple : tu as une application SpringBoot (Java) avec Hibernate et PostgreSQL, tu veux récupérer des listes d'entités triées sur une colonne. C'est facile de demander au système de te générer la requête qui renvoie tout ça nickel, il n'y a plus qu'à retranscrire le résultat de la requête au format voulu.
Mais de façon contre-intuitive, c'est sensiblement plus rapide de ne pas trier avec PostgreSQL, mais de récupérer les résultats dans le désordre et de les trier ensuite avec Java.
Je n'ai pas cherché l'explication au phénomène, et je ne sais pas si c'est reproductible avec d'autres SGBD, mais on a eu le cas sur des tables très petites et sur plusieurs centaines de lignes (au-delà c'est paginé donc trié côté SGBD), sur des clé de tri indexées ou non.
[^] # Re: Utilisation
Posté par SpaceFox (site web personnel, Mastodon) . En réponse au journal Sortie de "The Art of PostgreSQL" de Dimitri Fontaine. Évalué à 3.
Un contre-exemple : tu as une application SpringBoot (Java) avec Hibernate et PostgreSQL, tu veux récupérer des listes d'entités triées sur une colonne. C'est facile de demander au système de te générer la requête qui renvoie tout ça nickel, il n'y a plus qu'à retranscrire le résultat de la requête au format voulu.
Mais de façon contre-intuitive, c'est sensiblement plus rapide de ne pas trier avec PostgreSQL, mais de récupérer les résultats dans le désordre et de les trier ensuite avec Java.
Je n'ai pas cherché l'explication au phénomène, et je ne sais pas si c'est reproductible avec d'autres SGBD, mais on a eu le cas sur des tables très petites et sur plusieurs centaines de lignes (au-delà c'est paginé donc trié côté SGBD), sur des clé de tri indexées ou non.
La connaissance libre : https://zestedesavoir.com