Вопрос проверяет умение анализировать планы выполнения запросов и понимать, как база реально выполняет SELECT.
Для этого используют план выполнения запроса. В PostgreSQL — EXPLAIN и EXPLAIN ANALYZE. Если в плане указан Index Scan или Index Only Scan, значит индекс используется. Это основной и надёжный способ проверки.
План выполнения запроса — это описание шагов, которые база данных выполняет для получения результата.
Перед примерами важно отметить:
план показывает реальное поведение базы, а не ожидания разработчика.
EXPLAIN
SELECT * FROM users WHERE email = 'test@example.com';
Index Scan
Index Only Scan
Указание имени индекса
Малое число читаемых строк
EXPLAIN ANALYZEEXPLAIN ANALYZE
SELECT * FROM users WHERE email = 'test@example.com';
Показывает:
Фактическое время
Реальное число строк
Отличия от ожиданий планировщика
Маленькая таблица
Низкая селективность
Выражения над колонкой
Несоответствие типам
Единственный надёжный способ понять, используется ли индекс, — смотреть план выполнения. Всё остальное — предположения.