Version 2 (modified by JP, 7 years ago)

--

Optymalizacja zapytań PostgreSQL

Zasady:

  1. Unikaj podzapytań. Zamiast tego wybieraj dane za pomocą JOIN-ów
  1. Najmniejsza tabela pierwsza (lub taka na której warunek jest najbardziej efektywny)

Przykłady

  1. Źle

SELECT t1.id, a, b, c,

(SELECT d FROM table2 t2 WHERE t2.id = t1.id) AS d

FROM table t1;

Dobrze SELECT t1.id, a, b, c, t2.d

FROM table t1 INNER JOIN t2 ON t1.id = t2.id

Instrukcje dla optymalizatora

Instrukcja dla optymalizatora za pomocą GUC (Grand Unified Configuration)

Nie przestawiaj ani nie sprawdzaj kolejności tabel:

SET cpu_table_cost = 0.15;
SET join_collapse_limit = 1;
SET join_collapse_limit =1;
SET enable_nestloop = FALSE;
SET enable mergejoin = FALSE;