【发布时间】:2018-12-03 22:04:45
【问题描述】:
在我的 MySQL 数据库中,我有一个包含近 625k 行的产品表。该表有 162 列。
现在我的主页上有一个搜索框,您可以在其中搜索任何内容,如果您的搜索词与我的任何产品标题匹配,它会为您提供 15 种产品的列表。这类似于亚马逊和其他电子商务网站。
到目前为止,我所做的是创建一个包含所有产品 ID 和标题名称的 JSON 文件。当用户在搜索字段中输入至少 3 个字符时,会发出 AJAX 请求并获取列表。但我的问题是 JSON 文件的大小几乎为 12MB,每当用户写入一个字符或删除一个字符时,ajax 都会调用它。在我使用本地机器之前它工作正常,现在一旦我让它上线,它就不适用于用户,互联网连接低于 5 MBPS。所以我正在寻找一些建议,我如何像亚马逊一样快速创建它。我的意思是搜索来自 625K 产品的自动建议。
【问题讨论】:
-
请发布您已经拥有的示例,但听起来您在缓存方面存在问题(或缺少缓存)。在这种情况下,我建议您在这方面实施一些措施。或者,至少,您可能不会搜索所有 162 列的视图。
-
我将 json 文件作为数组的对象,在用户输入时,我只是从该 json 中获取结果并将其过滤为字符串匹配,但这不是最好的解决方案。我想要实现的是亚马逊自动建议的工作原理,我想实现同样的事情。
-
您的数据库结构错误。你对 JSON 所做的事情是错误的。