0

我正在制作一个 CMS,一旦用户搜索某个内容,就会使用 MySQL 生成一个缓存文件 (CSV),然后 PHP 会包含相同的 CSV 并为相同的搜索提供服务。

现在我想允许用户使用 jQuery 从同一个缓存/静态文件中过滤数据。

我有两种选择

  1. 进行数据库查询以根据用户的过滤参数生成结果
  2. 读取该缓存/静态(CSV 格式)并仅使用 PHP 根据用户参数生成结果。

我的数据库和 CSV 文件在 MySQL 数据库中都很小,大约 2000 行,在 CSV 文件中最多 500 行。CSV 文件的平均长度约为 50 行。将有几个(比如大约 100 个)CSV 文件用于不同的搜索。

哪种技术更快更有效?我在共享主机上。

搜索结果就像电子商务网站上的产品信息。

4

2 回答 2

0

因为你在一个共享主机上,总数2K不是问题,但是硬盘的IO是问题。

把数据库搜索结果放到内存中,比如mysql内存引擎表,让redis用TTL管理缓存更好。

于 2012-12-26T07:37:26.090 回答
0

共享主机上下文中的 MySQL 服务器大部分时间都超负荷了,有时可能非常慢/无响应。

如果你想解决这个问题,你可以让你的 php 脚本从数据表中为当天的第一个用户创建一个 CSV 文件,然后在一天的剩余时间里读取 CSV 文件。

于 2012-12-26T07:58:12.957 回答