1. Если выполняется LIKE с двумя wildcard'ами по бокам (LIKE '%something%') - обычные индексы не работают. Если с wildcard'ой на конце - работают.
2. Не знаю, что там у MySQL, у PostgreSQL есть pg_trgm расширение как раз для такого поиска (LIKE с wildcard'ами) + индекс gin/gist. Вот только сегодня
отвечал. У нас сейчас стоит такой индекс, в таблице чуть больше 10млн записей. Работает достаточно быстро.
3. Конфиг дефолтный сразу в топку. Нужно, чтобы БД более агрессивно использовала ОЗУ.