Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL 5.6 InnoDB-Volltextsuche

Ich habe Sphinx nie verwendet, aber MySQL 5.6 FTS auf einer Innodb-Tabelle mit etwa 170.000 Zeilen ausprobiert. Erstellt einen FTS-Index für die Namensspalte (enthält alle Namen einer Person). Um ein Wort an einer beliebigen Position der Zeichenfolge MATCH(name) AGAINST("+word*") IN BOOLEAN MODE zu finden funktioniert viel schneller (2-3 mal in meinem Fall) als die Verwendung von name LIKE "word%" OR name LIKE "% word" . Überprüfen Sie jedoch beim Erstellen von Joins EXPLAIN, um festzustellen, ob der FTS-Index tatsächlich verwendet wird. Es scheint, dass der MySQL-Optimierer nicht so gut darin ist, zu erraten, wann der FTS-Index verwendet werden sollte.