Подтвердить что ты не робот

Mysql: FORCE INDEX и USE INDEX

Недавно я работал над оптимизацией индексов для таблицы mysql, я заметил, что
FORCE INDEX и USE INDEX почти одинаковые функции, я хотел бы спросить, что их отличает?

4b9b3361

Ответ 1

Опубликуйте мои комментарии в качестве ответа:

Если вы используете USE INDEX, вы РЕКОМЕНДУЕТ оптимизатору использовать этот индекс, но он может использовать сканирование таблицы, если оптимизатор считает, что он будет быстрее. Если вы используете FORCE INDEX, тогда вы оптимизируете MAKE для использования этого индекса, даже если он считает, что сканирование таблицы более эффективно. Оптимизатор будет использовать сканирование таблицы, только если нет способа использовать индекс для поиска строк.

Синтаксис подсказки индекса:

Вы также можете использовать FORCE INDEX, который действует как USE INDEX (index_list), но с     что сканирование таблицы считается очень дорогостоящим. Другими словами,     сканирование таблицы используется только в том случае, если невозможно использовать один из указанных индексов     для поиска строк в таблице.