Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: explain, query, plan

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

Вопрос проверяет умение анализировать планы выполнения запросов и понимать, как база реально выполняет SELECT.

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

Для этого используют план выполнения запроса. В PostgreSQL — EXPLAIN и EXPLAIN ANALYZE. Если в плане указан Index Scan или Index Only Scan, значит индекс используется. Это основной и надёжный способ проверки.

Длинный ответ

Определение

План выполнения запроса — это описание шагов, которые база данных выполняет для получения результата.


Как посмотреть план

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


Базовый пример

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

Признаки использования индекса

  1. Index Scan

  2. Index Only Scan

  3. Указание имени индекса

  4. Малое число читаемых строк


EXPLAIN ANALYZE

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

Показывает:

  1. Фактическое время

  2. Реальное число строк

  3. Отличия от ожиданий планировщика


Когда индекс есть, но не используется

  1. Маленькая таблица

  2. Низкая селективность

  3. Выражения над колонкой

  4. Несоответствие типам


Краткий вывод

Единственный надёжный способ понять, используется ли индекс, — смотреть план выполнения. Всё остальное — предположения.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#explain

#query

#plan

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.