PostgreSQLPytanie 02 z 11
Dlaczego Seq Scan zamiast Index Scan?
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Planner porównuje szacowany koszt planów na podstawie statystyk i warunków zapytania. Sekwencyjny odczyt może być lepszy dla małej tabeli lub zapytania zwracającego dużą część danych.
SQL
EXPLAIN (ANALYZE, BUFFERS)
SELECT id, created_at
FROM orders
WHERE customer_id = 42;Sprawdzam: szacowane i rzeczywiste liczby wierszy, liczbę pętli, odczyty buforów, sortowanie i czas. Duży błąd estymacji może wskazywać problem ze statystykami.
Pułapka: EXPLAIN ANALYZE rzeczywiście uruchamia polecenie. Dla zapisów zmienia dane — nie jest niewinnym podglądem. Sam Seq Scan nie dowodzi problemu.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.