У меня есть таблица из 200 тыс. записей с столбцами INT. Я хочу создать индекс, чтобы делать запросы быстрее. Это запрос, который я хотел бы выполнить: SELECT A,B,C,D,E FROM table WHERE A=23 and (B=45 or C=43). Я создал следующие индексы: B, ACD, C, ABC.
С помощью команды EXPLAIN я обнаружил, что MySQL выбирает индекс ACD. Поэтому я продолжал заполнять таблицу большим количеством значений, и я понял, что MySQL переключался между указанными выше индексами (не всегда один и тот же).
Так как существует много вложений, наличие различных индексов вызовет проблемы с производительностью, и мы можем предположить, что к этой таблице обращаются другие запросы, для которых требуются разные столбцы, где каждый индекс имеет смысл.
Мне известно о USE INDEX(), но я хотел бы понять, следует ли нам доверять MySQL, чтобы выбрать правильный индекс.