SQLLab
Глоссарий/Seq Scan / Index Scan
ИндексыСредний

Seq Scan / Index Scan

Seq Scan — полное сканирование таблицы. Index Scan — поиск через индекс. EXPLAIN показывает какой метод выбран.

Синтаксис
EXPLAIN SELECT * FROM table WHERE col = value;

Объяснение

Три основных метода доступа к данным: Seq Scan: читает все страницы таблицы последовательно. Эффективен для маленьких таблиц или когда нужно читать большую часть строк. Index Scan: находит строки через индекс, затем читает нужные страницы. Эффективен для малой выборки. Bitmap Index Scan: собирает битмап нужных страниц через индекс, затем читает их по порядку. Промежуточный вариант.

Пример

-- Seq Scan (без индекса или маленькая таблица)
EXPLAIN SELECT * FROM users WHERE country = 'RU';
-- -> Seq Scan on users  (cost=0.00..1850.00 rows=12000 ...)

-- Index Scan (с индексом)
CREATE INDEX ON users (country);
EXPLAIN SELECT * FROM users WHERE country = 'RU';
-- -> Index Scan using users_country_idx ...)