Version 2 (modified by JP, 7 years ago) |
---|
Optymalizacja zapytań PostgreSQL
Zasady:
- Unikaj podzapytań. Zamiast tego wybieraj dane za pomocą JOIN-ów
- Najmniejsza tabela pierwsza (lub taka na której warunek jest najbardziej efektywny)
Przykłady
- Ź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;