sql >> Databáze >  >> RDS >> PostgreSQL

Postgres pořadí podle výkonu cizího klíče?

Rozdíl je právě zde na druhém řádku výstupu EXPLAIN:

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

Všimněte si, že „skutečný čas“ je v podstatě celý čas dotazu. Třídění vyžaduje nejen spoustu porovnávání (tj. náklady na třídění čehokoli), ale také další správu dat, server potřebuje zkopírovat některá data (řádky nebo ukazatele na řádky) do dočasného umístění, aby je bylo možné třídit, aniž by cokoli jiného rušilo. .

Jakýkoli dotaz bude s řazením trvat déle, pokud nebudete mít štěstí a vaše řazení nebude odpovídat pořadí na disku a optimalizátor si všimne, že se shodují.



  1. java.lang.OutofMemorySpace:Java haldový prostor při načítání 120 milionů řádků z databáze v pysparku

  2. JDBC/Connectorj:Pochopení sdružování připojení

  3. Stejné pole vícekrát v dotazu MySQL IN s PDO

  4. Ukládání JSON v databázi vs. mít nový sloupec pro každý klíč