Я делал это в прошлом (не в MySQL, а до того, как полнотекстовый поиск стал общедоступным на серверах баз данных), создав таблицу подстановки, в которой я создал все подстроку с левым разделением для поиска.
В моем случае это было заслужено - ключевой путь пользователя заключался в поиске имен во многом так, как вы предлагаете, и производительность была ключевой.
Он работал с триггерами при вставке, обновлении и удалении.
В переводе на ваш пример:
Псевдоним таблицы
ID name
1 Jandro
2 Alejandro
Таблица name_lookup
alias_id name_substring
1 Jandro
1 andro
1 ndro
1 dro
1 ro
2 Alejandro
2 lejandro
2 ejandro
2 jandro
2 andro
2 ndro
2 dro
2 ro
Ваш запрос становится
select alias_id, name
from alias a,
name_lookup nl
where a.id = ni.alias_id
and ni.name_substring like 'andro%'
Таким образом, вы попадаете в индекс таблицы name_substring.
Это стоит делать только для обычных запросов к огромным наборам данных - но это работает, и это быстро.