我意识到MySQL 5.6仍处于测试阶段,但有没有人有使用新InnoDB FTS引擎的经验?它与Sphinx相比如何?
由于 杰森
答案 0 :(得分:3)
从未使用Sphinx,但在Innodb表上尝试了MySQL 5.6 FTS,行数约为170k。在名称列上创建了一个FTS索引(包含一个人的所有名称)。在字符串MATCH(name) AGAINST("+word*") IN BOOLEAN MODE
的任何位置查找单词确实比使用name LIKE "word%" OR name LIKE "% word"
更快(在我的情况下为2-3次)。但是在进行连接时,请检查EXPLAIN以查看是否实际使用了FTS索引。似乎MySQL优化器在猜测何时应该使用FTS索引时并不擅长。
答案 1 :(得分:2)
以前需要从labs.mysql.com下载特殊版本的FULLTEXT功能现在是5.6.5及更高版本(仍处于测试版)的主线MySQL版本的一部分。 FULLTEXT函数的文档现在包含InnoDB特定的详细信息:MySQL Full-Text Search Functions
答案 2 :(得分:1)
请记住,Sphinx搜索是为在mysql中进行全文搜索而开发的,它只是一个功能...
在这里你比较了sphinx和mysql FTS: http://www.percona.com/files//presentations/opensql2008_sphinx.pdf
以下是InnoDB FTS与MyISAM相比的性能测试: http://blogs.innodb.com/wp/2011/07/innodb-fts-performance/
InnoDB的速度有点快,特别是在索引方面,但它仍然远离狮身人面像的表现......