MYSQL,INNODB大数据库中的替代搜索查询

时间:2014-07-26 03:21:22

标签: php mysql sql

现在我有一张超过250,000条记录的表,现在我想为此制作自定义搜索引擎。

当我使用标准查询SELECT * FROM table WHERE column1 LIKE '%word%' OR column2 LIKE '%word%' LIMIT 20时,它可以正常工作但性能较慢,是否有其他查询能够以较快的性能提供相同的结果?

我将INNODB与mysql 5.0一起使用,因此我无法添加FULLTEXT索引。

This is My Table Structure

1 个答案:

答案 0 :(得分:1)

还有其他全文搜索技术。

您知道您无法在MySQL 5.0中的InnoDB表中使用FULLTEXT索引,但您可以将可搜索的文本数据复制到MyISAM表,并在那里使用FULLTEXT索引。我不建议将MyISAM表作为该数据的唯一副本。将其视为易失性副本,如缓存,因为MyISAM极易受到损害。

还有第三方文本搜索技术,如Sphinx Search,Apache Solr,Xapian等。这些还涉及将文本数据复制到全文索引。

纯粹的InnoDB方法是为文本数据创建一个N-gram索引。

我在演示文稿Fulltext Search Throwdown中比较了其中一些方法。