При поиске по длине строки в MySQL индекс поля поможет или нет?
Стандартный индекс здесь не поможет. Но можно воспользоваться индексом по генерируемой колонке.ALTER TABLE `table`
  ADD COLUMN `len` INT GENERATED ALWAYS AS (LENGTH(`field`)) VIRTUAL,
  ADD INDEX `by_length` (`len`)
Ну и в выборке использовать поле `len`
Нет, не ускорит. Нужен функциональный индекс именно по length(field).
mysql 5.7.6 позволяет создать вычисляемые поля: https://dev.mysql.com/doc/refman/5.7/en/create-tab...
Это может быть STORED значение - т.е. будет занимать место как обычное поле, но вычисляться автоматически при добавлении/изменении строки. Может индексироваться всё с той же 5.7.6. И может быть virtual - такое поле вычисляется при обращении, не хранится на диске, но может индексироваться только с версии 5.7.8.
Если ваша версия старая и не умеет генерируемые колонки - то в вашем распоряжении всё ещё остаются старые методы для имитации функционального индекса: создаёте ещё одно числовое поле, куда сохраняете длину текста. Индексируете как обычно. За актуальностью данных могут следить пара триггеров на before insert и before update.