Текстовый поиск Mysql Index - PullRequest
       10

Текстовый поиск Mysql Index

0 голосов
/ 12 декабря 2011

У меня есть запрос, который в несколько раз медленнее, но я подозреваю, что его можно значительно улучшить, если бы я знал, как правильно его проиндексировать. У меня есть две таблицы, которые объединяются, и предложение WHERE, в котором есть сравнение дат для поля из одной таблицы и REGEXP для поля из другой.

SELECT * FROM tbl1 INNER JOIN tbl2 ON tbl1.id=tbl2.id 
 WHERE tbl1.date_time > now() AND tbl2.name REGEXP '[[:<:]]search[[:>:]]'   

Дата индексируется, но строки, которые переопределяются не из-за большого количества вставок в эту таблицу, и я боялся, что индексирование строки замедлит вставки по мере обновления индексов. Цель состоит в том, чтобы найти, когда данное слово («поиск» в этом примере) находится в тексте. Я также не делал полнотекстовый индекс, потому что он показался бесполезным, когда есть только несколько разных слов ~ 2000, которые будут искать таким образом. Если есть лучший способ сделать этот процесс, любая помощь будет признательна.

1 Ответ

0 голосов
/ 03 марта 2012

Таким образом, решение, которое я придумал, вместо того, чтобы фактически выполнять полнотекстовый индекс, состояло в том, чтобы выполнить обработку в автономном сценарии и сохранить результат.Вместо того, чтобы запускать это иногда медленное регулярное выражение, я построил структуру, похожую на три, в которой есть все возможные значения для поиска, и, если учесть, тексты могут определить из поиска, какие из них очень быстрые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...