IT заметки по программированию
IT заметки по программированию
IT заметки по программированию
IT заметки по программированию

Что такое Seq Scan (Последовательное сканирование) в PostgreSQL?

Seq Scan (Sequential Scan, последовательное сканирование) — это когда PostgreSQL просматривает всю таблицу целиком, чтобы найти нужные данные.

Происходит, если:
 Нет индекса на нужной колонке.
 Запрос возвращает слишком много строк (индекс не даст выигрыша).
 PostgreSQL считает, что индексный поиск дороже полного сканирования.
 В запросе используется WHERE function(column) = value (если нет индексного выражения).


Как выглядит Seq Scan в EXPLAIN ANALYZE?

EXPLAIN ANALYZE SELECT * FROM users WHERE age > 30;

Seq Scan on users (cost=0.00..1568.00 rows=500 width=50) Filter: (age > 30)

— PostgreSQL сканирует всю таблицу users.
— Чем больше данных, тем медленнее запрос.

 

Вывод

Seq Scan читается вся таблица, поэтому медленно на больших данных.
 Используй индексы, чтобы PostgreSQL выбирал Index Scan.
 Следи за планом выполнения (EXPLAIN ANALYZE).
 Обновляй статистику (ANALYZE), если запросы идут не так, как ожидалось.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *