0

我正在尝试确定在重负载下直接从 mysql 数据库获取结果是否比从缓存文件中获取结果更快或更慢。在任何情况下,这将是最快的。

我有两组数据,我正在使用缓存文件。我正在使用 PDO。

  1. 一个显示返回的类别列表 - 类别字母、类别名称和类别编号结果。我每页拉出 400 个类别。
  2. 返回的视频缩略图 - 标题、网址、观看次数、来源和持续时间。我每页拉出大约 140 个拇指和数据。

我设置了缓存文件以序列化数组结果并保存到文件中。如果缓存文件时间仍然有效,它将显示缓存文件与数据库的结果。

我正在尝试确定查询数据库是否比访问缓存文件以显示结果更好。我所做的测试似乎表明从文件中获取结果比从数据库中获取结果要快。但是,无论如何我都不是大师......所以我想看看是否有人可以帮助我提供一些反馈。

谢谢!

4

4 回答 4

1

比基于文件的缓存更快的可能是例如 memcached 或 redis 服务器!

于 2012-10-02T16:25:00.347 回答
0

TIAS

缓存的全部意义在于加快网站速度,尤其是在数据库调用上,这通常是网站中最慢的部分。

但更重要的是,与输入这个问题并等待回复相比,您可以更快地运行基准测试。在你的开发机器上安装 xdebug 并下载一个解析器来告诉你在哪里节省时间以及你的瓶颈在哪里。

于 2012-10-02T16:28:41.793 回答
0

当然是缓存文件。这就是缓存数据的意义所在。

于 2012-10-02T16:21:58.173 回答
0

Caching to files is faster. You're on the right way!

If you are using just one unix server and have enough free memory, maybe the easiest and fastest method is to store the serialized data to files on in-memory /tmp -filesystem. So, forget memcached if possible. Also remember to give enough memory to mysql query cache if you don't have patience to implement caching everywhere. Home made caching is the lightest and thus the fastest way if made right.

Depending on your data, it might be better to just delete the cached file just before the data is changed instead of using expiration time. This way you know the data is good if the file exists.

And because you're interested of speed... I get much more power using basic mysql-functions instead of PDO or mysqli. And of course lighty instead of apache :)

于 2012-10-02T21:07:04.620 回答