Была подобная задача. Вариант с разбивкой на слова и делать word index поможет.
В таблице с около 15 млн слов поиск шел 0,02 сек примерно. Даже приходилось записывать не полные слова вроде «купила», «купил»,«купи» для того чтобы пользователю не приходилось вводить всё слово.
>>LIKE '%$name%' OR name '%$translit%'
насчёт этого то можно ускорить поиск используя like вот так
LIKE '$name%' OR name '$translit%' т.е. индекс строиться с начала строи и далее, в случае если используется % в лайке вначале то собственно смысла в индексе уже нет. Но если не использовать % в начале лайка то нужно придумывать другую структуру поиска так как не все варианты будет находить.