У меня есть запрос, который в несколько раз медленнее, но я подозреваю, что его можно значительно улучшить, если бы я знал, как правильно его проиндексировать. У меня есть две таблицы, которые объединяются, и предложение WHERE, в котором есть сравнение дат для поля из одной таблицы и REGEXP для поля из другой.
SELECT * FROM tbl1 INNER JOIN tbl2 ON tbl1.id=tbl2.id
WHERE tbl1.date_time > now() AND tbl2.name REGEXP '[[:<:]]search[[:>:]]'
Дата индексируется, но строки, которые переопределяются не из-за большого количества вставок в эту таблицу, и я боялся, что индексирование строки замедлит вставки по мере обновления индексов. Цель состоит в том, чтобы найти, когда данное слово («поиск» в этом примере) находится в тексте. Я также не делал полнотекстовый индекс, потому что он показался бесполезным, когда есть только несколько разных слов ~ 2000, которые будут искать таким образом. Если есть лучший способ сделать этот процесс, любая помощь будет признательна.