Sobes.tech
Junior — Middle

Czy możesz wyjaśnić cel polecenia EXPLAIN w PostgreSQL i jak pomaga ono optymalizować zapytania?

sobes.tech AI

Odpowiedź od AI

Instrukcja EXPLAIN w PostgreSQL służy do uzyskania planu wykonania zapytania SQL. Pokazuje, jak baza danych planuje wykonać zapytanie — które indeksy będą używane, jak będą łączone tabele, ile wierszy ma być przetworzonych itp.

Pomaga to zoptymalizować zapytania, identyfikując wąskie gardła, na przykład:

  • Brak indeksów, co powoduje pełne skanowanie tabeli.
  • Nieprawidłowa kolejność łączenia tabel.
  • Nadmiarowe operacje sortowania lub agregacji.

Przykład użycia:

EXPLAIN SELECT * FROM users WHERE email = 'example@mail.com';

Wynik pokaże, czy zostanie użyty indeks na polu email, czy wykonane zostanie skanowanie sekwencyjne.

Dla bardziej szczegółowej analizy można użyć EXPLAIN ANALYZE, które wykonuje zapytanie i pokazuje rzeczywiste koszty czasowe.