MySQL ускоряем LIKE() при помощи MATCH()

При большом количестве записей LIKE (Простой пример%) работает оочень долго. Как вариант можно сначала сделать запрос MATCH(),  а потом уже из него лайк.

Чтобы матч заработал, создаем индекс FULLTEXT. Его лучше создавать после занесения данных, тк при его наличии данные добавляются медленнее.
mysql> ALTER TABLE wtable ADD FULLTEXT (wkey);

mysql> SELECT wkey FROM (SELECT * FROM wtable WHERE MATCH (wkey) AGAINST ('"Простой пример"' IN BOOLEAN MODE) ) as t2 WHERE wkey LIKE 'Простой пример %' ;

Учтите, если слово имеет меньше 4х символов MATCH() верент пустой результат при настройках по умолчанию. Как исправить.

      

Добавить комментарий

Ваш адрес email не будет опубликован.