PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres-Reihenfolge nach Fremdschlüsselleistung?

Der Unterschied liegt genau hier in der zweiten Zeile der EXPLAIN-Ausgabe:

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

Beachten Sie, dass die "tatsächliche Zeit" so ziemlich die gesamte Zeit der Abfrage ist. Das Sortieren erfordert nicht nur eine Reihe von Vergleichen (d. H. Die Kosten für das Sortieren von irgendetwas), sondern auch zusätzliches Datenmanagement. Der Server muss einige Daten (Zeilen oder Zeiger auf Zeilen) an einen temporären Speicherort kopieren, damit sie sortiert werden können, ohne irgendetwas anderes zu stören .

Jede Abfrage dauert beim Sortieren länger, es sei denn, Sie haben Glück und Ihre Sortierung stimmt mit der Reihenfolge auf der Festplatte überein, und der Optimierer kann feststellen, dass sie übereinstimmen.