Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Pesquisa de texto completo do MySQL 5.6 InnoDB


Nunca usei Sphinx, mas tentei MySQL 5.6 FTS em uma tabela Innodb com cerca de 170k linhas. Feito um índice FTS na coluna de nome (contém todos os nomes de uma pessoa). Para encontrar uma palavra em qualquer posição da string MATCH(name) AGAINST("+word*") IN BOOLEAN MODE funciona muito mais rápido (2-3 vezes no meu caso) do que usar name LIKE "word%" OR name LIKE "% word" . No entanto, ao fazer junções, verifique EXPLAIN para ver se o índice FTS é realmente usado. Parece que o otimizador do MySQL não é tão bom em adivinhar quando o índice FTS deve ser usado.