gpt4 book ai didi

php - MySQL:通过单词搜索缩短查询时间

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

场景

我在销售产品的网站上有一个搜索工具。
该页面是使用 PHP 和 MySQL 构建的,针对将 10 多个表连接在一起的合并 View 进行搜索。 View 中大约有 12,000 条记录,每条记录有 20 多个字段。

用户可以使用多个 (10-15) 选择菜单搜索符合特定条件的产品。
然后,数据库根据针对产品主键的选择菜单值返回结果。

这一切工作正常,而且速度足够快。

问题

但是,在同一页面上,我还包含了一个文本框,这样用户就可以手动输入他们要搜索的内容,而不是使用菜单。

由于用户正在键入实际的单词而不是通过菜单选择 PK,因此数据库必须进行单词搜索。由于缺乏关于更好方法的知识,我将所有来自外国标准表的文本值连接到一个大字段中。
然后,文本框会在此连接字段中搜索单词。

同样,这工作正常,但将典型的搜索时间从 0.1 秒更改为 2.0 秒。
我已经为合并 View 使用的表中的所有字段编制了索引,以努力缩短时间,但是,这根本没有帮助。

问题

由于 Google 可以在 1 秒内为单词“Overflow”找到 22,200,000 页,而我的数据库需要 2 秒才能在仅 12,000 条记录中搜索单词。

如何改进数据库的布局和搜索方法?

最佳答案

我强烈推荐 Lucene Solr在这个情况下。它有一个非常适合这项任务的反向索引系统。您可以将它与 PHP 一起使用(您通过前端与它交互)。

尝试一下(至少看看一些教程),您会惊讶于自己启动和运行的速度有多快。

关于php - MySQL:通过单词搜索缩短查询时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1096011/

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