Как по плану запроса понять, что не хватает индексов?

Чтобы понять по плану запроса, что не хватает индексов, нужно обратить внимание на следующие признаки:

Короткий ответ

Что ответить на собеседовании

Чтобы понять по плану запроса, что не хватает индексов, нужно обратить внимание на следующие признаки:

Подробный разбор

Ответ с пояснениями

Чтобы понять по плану запроса, что не хватает индексов, нужно обратить внимание на следующие признаки:

  • В плане видны полные сканирования таблиц (Table Scan, Full Table Scan, Seq Scan), а не индексные проходы (Index Scan, Index Seek).
  • Высокая стоимость операций, связанная с чтением большого количества строк.
  • Отсутствие использования индексов по колонкам, участвующим в условиях WHERE, JOIN, ORDER BY.

Например, если в плане запроса видно, что для фильтрации по столбцу user_id происходит полное сканирование таблицы, значит, вероятно, отсутствует индекс по этому столбцу. В таком случае стоит создать индекс, чтобы ускорить выборку.

Пример:

EXPLAIN SELECT * FROM orders WHERE user_id = 123;

Если в выводе будет Seq Scan on orders, значит индекс отсутствует или не используется.

Создание индекса:

CREATE INDEX idx_orders_user_id ON orders(user_id);

После создания индекса план запроса должен измениться, показывая использование индексного поиска.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее