【问题标题】:Cache - disk or database? [closed]缓存 - 磁盘还是数据库? [关闭]
【发布时间】:2011-10-16 13:37:52
【问题描述】:

在共享主机上哪个更好?

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

【问题讨论】:

  • 将数据库结果缓存到磁盘是“反缓存”。
  • 最好将缓存引擎应用于输出的 HTML,而不是数据库。

标签: php mysql caching disk


【解决方案1】:

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

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

数据库通常将很多东西保存在内存中,因为与内存访问相比,磁盘访问非常慢。所以使用磁盘缓存小东西通常不会提高性能。

【讨论】:

  • 但是便宜的主机不会启用 memcached :(
  • 所见即所得。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    这是我的方法:

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

    【讨论】:

    • 我有这个确切的想法。要么我没疯,要么都疯了!我必须做一些基准测试!
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2021-10-12
      • 2014-04-06
      • 1970-01-01
      相关资源
      最近更新 更多