我正在运行一个php/mysql驱动的网站,访问量很大,我正在考虑在共享内存中缓存结果集的可能性,以减少数据库负载。
但是,现在MySQL的查询缓存已启用,它似乎做得非常好,因为如果禁用查询缓存,则CPU的使用将立即跳转到100%。
鉴于这种情况,我不知道在PHP中共享内存中本地缓存结果集(甚至是生成的HTML代码)是否会带来显着的性能提升。MySQL查询缓存vs应用程序层中的缓存结果集
有没有人在这方面有过任何经验? PS:请避免建议像memcached这样的重炮解决方案。现在我正在寻找简单的解决方案,不需要太多时间来实施,部署和维护。
编辑:
我看到我对memcached的评论偏离实际点,这是在应用层的缓存数据库查询是否会导致明显的服务表现影响,考虑到这些查询的结果都已经是答案缓存在数据库级别。
您的数据使用情况如何?大部分读取和写入很少,还是有很多写入活动? – 2010-05-25 17:41:50
CPU使用率达到100%是可疑的。大多数数据库最终都会绑定IO,而不是绑定CPU。 – 2010-05-25 18:05:44
有很多写操作,但我设法安排表格,以便大多数查询表格的修改次数减少。这就是为什么MySQL的查询缓存工作得很好。 – GetFree 2010-05-25 18:07:41