Я считаю, что следующий индекс является оптимальным:
CREATE INDEX idx ON T (c4, c1, c2, c3, c5);
Индекс начинается с c4
, которое появляется в предложении WHERE
, которое является первой частью выполнения запроса. Затем мы добавляем c1
, c2
и c3
, чтобы охватить предложение GROUP BY
. После этого мы добавляем c5
, что позволит MySQL быстрее найти MAX(c5)
.
Обратите внимание, что указанный выше индекс можно сказать, что покрывает весь запрос , потому что MySQL может использовать только индекс для удовлетворения всего плана запроса, без необходимости возвращаться к кластеризованному индексу (таблице).