sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Orden de Postgres por rendimiento de clave externa?

La diferencia está aquí en la segunda línea de la salida EXPLAIN:

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

Tenga en cuenta que el "tiempo real" es prácticamente todo el tiempo de la consulta. La clasificación requiere no solo un montón de comparaciones (es decir, el costo de clasificar cualquier cosa), sino también una gestión de datos adicional, el servidor necesita copiar algunos datos (filas o punteros a filas) en una ubicación temporal para que se puedan clasificar sin alterar nada más. .

Cualquier consulta llevará más tiempo con la clasificación a menos que tenga suerte y su clasificación coincida con el orden en el disco y el optimizador pueda notar que coinciden.