缓存 - 磁盘还是数据库?

时间:2011-07-30 14:50:56

标签: php mysql caching disk

哪个在共享主机上更好?

您认为将数据库查询结果缓存到磁盘是个好主意吗?

4 个答案:

答案 0 :(得分:5)

这是一个非常糟糕的主意,除非查询超级昂贵(数据库布局错误?)返回一个巨大的结果集。

  • 如果查询很昂贵但结果集很小:将其存储在内存中,例如:在memcached中。
  • 如果查询便宜:为什么要缓存它?但如果你想这样做,记忆就是你要走的路。

数据库通常会在内存中保留大量内容,因为与内存访问相比,磁盘访问速度非常慢。因此,使用磁盘缓存小东西通常不会提高性能。

答案 1 :(得分:2)

取决于目的。如果它可用,我会将它们存储在MemCache中。否则,将它们存储在磁盘上是我认为最好的选择。

但通常没有必要存储查询。通常他们会表现良好。如果您遇到大而复杂的查询,最好切换到专用服务器。但在此之前,您可以通过创建正确的索引并优化查询来调整数据库。

答案 2 :(得分:0)

这是我的approuch:

我在php数组结构中的“磁盘”上缓存数据库查询。然后强大的PHP操作码缓存开始工作,它从内存而不是磁盘,当他们被缓存时给我结果。 http://en.wikipedia.org/wiki/PHP_accelerator

答案 3 :(得分:0)

为什么不使用存储过程和触发器从结果中创建临时表?存储到磁盘有点不寻常。