EXPLAIN ANALYZE je nejdůležitější optimalizační nástroj.
Použití¶
EXPLAIN ANALYZE SELECT * FROM orders WHERE user_id=123; EXPLAIN (ANALYZE, BUFFERS) SELECT …;
Scany¶
- Seq Scan — celá tabulka
- Index Scan — index + fetch
- Index Only Scan — jen index
- Bitmap — pro více řádků
Joins¶
- Nested Loop — malé tabulky
- Hash Join — velké bez indexu
- Merge Join — seřazená data
Optimalizace¶
- Přidat chybějící index
- ANALYZE pro statistiky
- Subquery → JOIN
- Zvýšit work_mem pro sorty
EXPLAIN = debugging dotazů¶
cost vs actual odhalí problémy.
postgresqlexplainquery optimization