【问题标题】:Boolean search on database with 5 million rows, very slow对具有 500 万行的数据库进行布尔搜索,非常慢
【发布时间】:2012-06-07 01:47:20
【问题描述】:

我有一个脚本,当用户搜索“Apples”时,会有一个列显示“Shiny Apples”和“Rotten Apples”等相关搜索。

问题是我的搜索数据库有 5,600,000 行,而 mysql 非常滞后。

这是我的代码:

$get = mysql_query("SELECT keyword FROM searches WHERE MATCH (keyword) AGAINST ('".mysql_real_escape_string(preg_replace('#([\S]+)#', '$1', $title))."' IN BOOLEAN MODE) LIMIT 0,15");

这需要很长时间来处理,而且我有一个非常活跃的网站,每秒都会执行搜索,有人可以推荐我一些技巧吗?

谢谢!

【问题讨论】:

  • 你的表有索引吗?
  • 嗯....这使得第一个建议非常简单:创建一些。

标签: php mysql boolean


【解决方案1】:

您需要索引。过去我有过一些经验,仅通过创建索引就可以获得显着的性能提升。

【讨论】:

  • 谢谢,一定要加快速度!
【解决方案2】:

您必须为要查看的列编制索引以加快处理速度。我退出使用 Mysql 的本机搜索只是因为它很烂。我搬到了 Lucene,并且像魅力一样工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 2014-03-30
    • 2019-04-29
    • 1970-01-01
    相关资源
    最近更新 更多