Оптимизатор может предпочесть полный просмотр, если запрос возвращает большую часть таблицы, таблица мала или индекс не соответствует условию. Наличие индекса не означает, что его использование дешевле.
Когда оптимизатор может не использовать существующий индекс?
Оптимизатор может предпочесть полный просмотр, если запрос возвращает большую часть таблицы, таблица мала или индекс не соответствует условию. Наличие индекса не означает, что его использование дешевле.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Оптимизатор может предпочесть полный просмотр, если запрос возвращает большую часть таблицы, таблица мала или индекс не соответствует условию. Наличие индекса не означает, что его использование дешевле.
Проверьте селективность, актуальность статистики, порядок полей составного индекса, преобразования типов и функции над столбцом. Для частичного индекса условие запроса должно позволять доказать соответствие его предикату. Стоимость случайного чтения и необходимость обращаться к таблице тоже влияют на выбор. Сравнивайте план с реальными объёмами и задержками, а не требуйте Index Scan любой ценой.