gpt4 book ai didi

php - 我的 MYSQL 数据库使用哪种搜索方法

转载 作者:可可西里 更新时间:2023-11-01 07:37:58 25 4
gpt4 key购买 nike

我正在用 php 和 mysql 制作一个(小型)网站。 mysql 数据库由一个表组成,可能有数万行(将来)。

我只需要从字符数限制为 200 的一列中获取结果。

考虑到我不想要任何停用词或“常见”词特征;并且该列包含文件名(有些带有特殊字符),您会推荐哪种类型的搜索?

编辑:关于文件名的更多说明:
我不想做完全匹配;假设我有一个这样的名字:[abc]_random_file.txt;搜索“abc random”或“[abc] random”或“abc txt”应该都匹配。希望这是有道理的。

我考虑过:

1----类SQL语句
2----SQL正则表达式(如本站所示:http://www.iamcal.com/publish/articles/php/search/)
3----Mysql全文搜索(MyISAM)
4----第三方搜索引擎(真的不想干这个)

使用 #2 我可能会得到我想要的结果,但是我认为如果它变大它就不能很好地用于我的表?

非常感谢任何帮助;我是这一切的真正初学者,我整天都在谷歌搜索:(

最佳答案

您需要搜索什么?当您考虑搜索的限制时,通常可以找到优化。例如,如果您只需要查找以特定文本开头的所有行,您可以添加一个简单的索引并使用LIKE,这将立即给出结果。

一般来说,如果一个简单的相等或 LIKE 就可以,那么它们可能会表现最好。正则表达式无论如何都会进行全面扫描。然而,即使有 100,000 行,它仍然只占用 20MB 的 RAM,因此对所有行进行全面扫描不会很慢(除非您使用的是古老的服务器)。

我会说 - 首先尝试简单的方法,看看会发生什么。如果性能达到 Not Acceptable 水平,您应该能够轻松地改变您的方法。毕竟 - 您确实说过该网站很小。

已添加:只需阅读您的更新即可。听起来像是 MySQL 的全文索引的工作。试试看它是否适合您。

关于php - 我的 MYSQL 数据库使用哪种搜索方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6519626/

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