直接MySQL查询或缓存文件 - 哪个更快?

时间:2012-10-02 15:08:06

标签: php mysql pdo

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

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

  1. 一个显示返回的类别列表 - 类别字母,类别名称和类别编号结果。我每页拉400个类别。
  2. 视频缩略图,返回 - 标题,网址,观看次数,来源和持续时间。我每页拉大约140个拇指数据。
  3. 我将缓存文件设置为序列化数组结果并保存到文件中。如果缓存的文件时间仍然有效,它将显示缓存文件与数据库的结果。

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

    谢谢!

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

当然是缓存文件。这就是缓存数据的重点。

答案 2 :(得分:0)

TIAS

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

但更重要的是,你可以在这方面运行基准测试,而不是输入这个问题并等待回应。在您的开发盒上安装xdebug并下载解析器,告诉您节省时间和瓶颈所在的位置。

答案 3 :(得分:0)

缓存到文件更快。你是在正确的方式!

如果您只使用一个unix服务器并且有足够的可用内存,那么最简单快捷的方法是将序列化数据存储到内存/ tmp文件系统中的文件。所以,如果可能的话,忘记memcached。如果你没有耐心在任何地方实现缓存,还要记得为mysql查询缓存提供足够的内存。自制缓存是最轻的,因此如果做得对,也是最快的方式。

根据您的数据,最好在更改数据之前删除缓存文件,而不是使用到期时间。这样,如果文件存在,您就知道数据是好的。

因为你对速度感兴趣...我使用基本的mysql函数而不是PDO或mysqli获得了更多的力量。当然轻而不是apache:)