【问题标题】:MYSQL , INNODB Alternative Search Query In Big DatabaseMYSQL , INNODB 大数据库中的替代搜索查询
【发布时间】:2014-07-26 03:21:22
【问题描述】:

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

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

我在 mysql 5.0 中使用 INNODB,所以无法添加 FULLTEXT 索引。

【问题讨论】:

标签: php mysql sql


【解决方案1】:

还有其他全文搜索技术。

您知道在 MySQL 5.0 的 InnoDB 表中不能使用 FULLTEXT 索引,但您可以将可搜索的文本数据复制到 MyISAM 表中,并在那里使用 FULLTEXT 索引。我不建议将 MyISAM 表设为该数据的唯一副本。将其视为易失性副本,就像缓存一样,因为 MyISAM 很容易受到损坏。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2014-01-12
    • 2017-04-25
    相关资源
    最近更新 更多