在共享主机上哪个更好?
你认为把数据库查询结果缓存到磁盘上是个好主意吗?
这是一个非常糟糕的主意,除非查询非常昂贵(糟糕的数据库布局?)和返回一个巨大的结果集。
- 如果查询是昂贵的,但结果集很小:将其存储在内存中,例如在memcached中。 如果查询很便宜:为什么要缓存它呢?但是如果你想这样做,内存是最好的选择。
取决于目的。如果MemCache可用,我会把它们存储在里面。否则,我认为将它们存储在磁盘上是最好的选择。
但是通常根本不需要存储查询。通常他们会表现得很好。如果您有如此庞大和复杂的查询,那么最好切换到专用服务器。但在此之前,您可以通过创建正确的索引和优化您的查询来调整我们的数据库。
这是我的方法:
我缓存数据库查询的"磁盘"在一个php数组结构。然后强大的php操作码缓存来工作,给我的结果从内存而不是磁盘,因为他们被缓存。http://en.wikipedia.org/wiki/PHP_accelerator
为什么不使用存储过程和触发器从结果创建临时表呢?存储到磁盘有点不寻常。