Не имеет смысла использовать индекс для вашего запроса, потому что вы выбираете столбец с полным именем.Это означает, что MySQL не может использовать только индекс для удовлетворения запроса.
Кроме того, я считаю, что MySQL не может понять, что выражение SUBSTRING(name FROM 1 FOR 1)
эквивалентно индексу.
Однако MySQL можетиспользуйте индекс, если только один индекс может удовлетворить запрос.Например:
select count(*)
from mytable
where name like 'T%';
Но даже это зависит от вашей статистики (подсказка должна работать).
Функция частичного индекса MySQL предназначена для экономии места.Обычно нет смысла иметь как частичный, так и полный индекс столбца.Вы, как правило, бросаете более короткий.Может быть редкий случай, когда это имеет смысл, но вообще не имеет смысла.