我知道 MySQL 5.6 仍处于测试阶段,但是有人有使用新的 InnoDB FTS 引擎的经验吗?它与 Sphinx 之类的东西相比如何?
谢谢 杰森
最佳答案
从未使用过 Sphinx,但在大约 170k 行的 Innodb 表上尝试过 MySQL 5.6 FTS。在姓名列(包含一个人的所有姓名)上建立了 FTS 索引。要在字符串的任何位置找到单词,MATCH(name) AGAINST("+word*") IN BOOLEAN MODE
确实比使用 快得多(在我的例子中是 2-3 倍) >name LIKE "word%"OR name LIKE "% word"
.但是,在进行连接时,请检查 EXPLAIN 以查看是否实际使用了 FTS 索引。看来 MySQL 优化器不太擅长猜测何时应该使用 FTS 索引。
关于MySQL 5.6 InnoDB 全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8104094/