Индекс используется, только если планировщик считает подходящий индексный план выгодным. Последовательное чтение может быть дешевле для большой доли таблицы.
Почему PostgreSQL может не использовать существующий индекс?
Индекс используется, только если планировщик считает подходящий индексный план выгодным. Последовательное чтение может быть дешевле для большой доли таблицы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Индекс используется, только если планировщик считает подходящий индексный план выгодным. Последовательное чтение может быть дешевле для большой доли таблицы.
Проверьте соответствие условий выражению и порядку колонок индекса, приведения типов, статистику и фактическую селективность. У частичного индекса предикат должен подходить запросу. Маленькая таблица часто быстрее читается целиком. Сравните EXPLAIN с фактическими данными в безопасном окружении; наличие индекса не является указанием планировщику обязательно его использовать.