【问题标题】:Best mysql way to search through a string搜索字符串的最佳mysql方法
【发布时间】:2012-03-07 17:29:41
【问题描述】:

我的数据库中有一个消息字段,我想以最快的方式在用户消息中搜索特定字符串。由于用户收到了很多消息,因此该过程可能会很慢。 这是我到目前为止的 sql 查询:

$result=mysql_query("
          SELECT message_content 
          FROM `messages` AS ms
          INNER JOIN users1 AS us ON us.user_id=ms.user_id
          WHERE us.user_id=".$user_id." AND  message_content LIKE '%".$string_to_search."%'") or die(mysql_error()); 

有没有办法加快搜索速度?

【问题讨论】:

  • 考虑到您的要求,您的搜索对我来说似乎很好......

标签: php mysql sql


【解决方案1】:

字符串搜索对于数据库来说是一个固有的问题。使用LIKE 是最便携的方式;它肯定会搜索您的字符串。这意味着它会读取每条记录并扫描给定的子字符串,这是搜索数据库最慢的方式。

MySQL 中的另一种选择是使用FULLTEXT 搜索,它是索引驱动的,但有许多限制。它更好,但它不是您想要构建搜索引擎的那种东西。

另一方面,像Sphinx 这样的项目实际上是为运行搜索引擎而设计的,并且做得很好。 Sphinx 与 MySQL 有很好的联系,并且是专门为解决这个问题而构建的。它提供了非常好的搜索准确性和性能,因此,如果您正在做任何严肃的事情,这就是您要走的路。

【讨论】:

  • 并使用 jquery + php mysql。它比 php 和 mysql 快一点。如果您查询执行时间很大,用户看不到任何重新加载的页面。可用性
猜你喜欢
  • 2014-03-23
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多