PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Ordre Postgres par performance de clé étrangère?

La différence est juste ici dans la deuxième ligne de la sortie EXPLAIN :

->  Sort  (cost=27.88..27.89 rows=7 width=198) (actual time=2984.688..2984.692 rows=28 loops=1)

Notez que le "temps réel" est à peu près le temps entier de la requête. Le tri nécessite non seulement un tas de comparaisons (c'est-à-dire le coût du tri de quoi que ce soit) mais également une gestion supplémentaire des données, le serveur doit copier certaines données (lignes ou pointeurs vers des lignes) vers un emplacement temporaire afin qu'elles puissent être triées sans déranger quoi que ce soit d'autre .

Toute requête prendra plus de temps avec le tri, sauf si vous avez de la chance et que votre tri correspond à l'ordre sur le disque et que l'optimiseur peut remarquer qu'ils correspondent.