gpt4 book ai didi

php - 搜索字符串的最佳mysql方法

转载 作者:行者123 更新时间:2023-11-29 05:37:20 25 4
gpt4 key购买 nike

我的数据库中有一个消息字段,我想以最快的方式在用户消息中搜索特定的字符串。由于用户收到了很多消息,这个过程可能会很慢。这是我到目前为止的 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());

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

最佳答案

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

MySQL 中的替代方法是使用 FULLTEXT搜索,它们是索引驱动的,但有许多限制。它更好,但它不是您想要构建搜索引擎的那种东西。

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

关于php - 搜索字符串的最佳mysql方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com