Всем привет!
У меня есть набор таблиц InnoDB, связанных между собой.
Есть таблица
texts
, где есть поле
content LONGBLOB
.
В таблице 150 000 строк.
Будет больше (500 000 или даже 1 000 000).
Мне нужна хорошая (3-5 сек) скорость ответа на запрос:
SELECT * FROM texts WHERE content LIKE '%тут любой мой текст%';
Сейчас при InnoDB это выливается в 25 - 100 секунд на ответ.
Я попробовал сменить Engine у этой таблицы на MyISAM и скорость стала 2 секунды.
Но мне нужны InnoDB для внешних ключей.
Подскажите, пожалуйста, что можно сделать со скоростью поиска в InnoDB?
Индекса у столбца нет, т.к. запросы SELECT всегда будут начинаться с %.
Какие настройки InnoDB можно посмотреть?
В данном случае единственное решение - зеркало этой таблицы в MyISAM движке + триггеры на CRUD для первой таблицы с логикой копирования данных в зеркало?
Кеширование приемлимо.
Повесить скрипт на cron и выполнять 1 раз в час, а затем кешированные результаты выдавать?
Какой вариант будет лучшим?