EXPLAIN ANALYZE ist das wichtigste Optimierungswerkzeug.
Verwendung¶
EXPLAIN ANALYZE SELECT * FROM orders WHERE user_id=123;
EXPLAIN (ANALYZE, BUFFERS) SELECT ...;
Scans¶
- Seq Scan — gesamte Tabelle
- Index Scan — Index + Fetch
- Index Only Scan — nur Index
- Bitmap — für mehrere Zeilen
Joins¶
- Nested Loop — kleine Tabellen
- Hash Join — große ohne Index
- Merge Join — sortierte Daten
Optimierung¶
- Fehlenden Index hinzufügen
- ANALYZE für Statistiken
- Subquery → JOIN
- work_mem für Sortierungen erhöhen
EXPLAIN = Abfrage-Debugging¶
Cost vs. Actual deckt Probleme auf.
postgresqlexplainquery optimization