Решение об использовании индекса принимает оптимизатор при построении плана, оценивая стоимость доступных способов выполнения. Само наличие индекса не заставляет его использоваться.
Когда принимается решение, использовать ли индекс при выполнении SQL-запроса?
Решение об использовании индекса принимает оптимизатор при построении плана, оценивая стоимость доступных способов выполнения. Само наличие индекса не заставляет его использоваться.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Решение об использовании индекса принимает оптимизатор при построении плана, оценивая стоимость доступных способов выполнения. Само наличие индекса не заставляет его использоваться.
Учитываются статистика, селективность, размер таблицы, сортировка, LIMIT и стоимость чтения. Prepared statements могут использовать общий или зависящий от параметров план — это зависит от СУБД. Если выбор неудачен, сначала проверьте статистику и фактический план, а не отключайте последовательный проход вслепую.