Mysql
 sql >> Base de données >  >> RDS >> Mysql

Recherche en texte intégral MySQL 5.6 InnoDB

Je n'ai jamais utilisé Sphinx, mais j'ai essayé MySQL 5.6 FTS sur une table Innodb avec environ 170 000 lignes. Création d'un index FTS sur la colonne name (contient tous les noms d'une personne). Pour trouver un mot à n'importe quelle position de la chaîne MATCH(name) AGAINST("+word*") IN BOOLEAN MODE fonctionne beaucoup plus rapidement (2-3 fois dans mon cas) que d'utiliser name LIKE "word%" OR name LIKE "% word" . Cependant, lorsque vous effectuez des jointures, vérifiez EXPLAIN pour voir si l'index FTS est réellement utilisé. Il semble que l'optimiseur MySQL ne soit pas très bon pour deviner quand l'index FTS doit être utilisé.