我仍然是Codeigniter框架的新手。今天我读到了有关数据库缓存http://codeigniter.com/user_guide/database/caching.html和网页缓存http://codeigniter.com/user_guide/general/caching.html的信息。
如果页面视图已经在缓存中,数据库缓存有任何意义,我会感到有点困惑。因此,如果页面位于缓存中,则无论如何都不会进入数据库。
我在以下场景中看到的唯一一点: 如果我从db加载30个结果,那么使用php来重排结果并从数组10结果中提取。下次删除页面缓存时,我仍然会有来自缓存中db的30个结果,但是这次刷新30个结果后会有不同的结果。
我是否遗漏了某些内容,在使用数据库缓存在使用页面缓存时是否会带来任何好处还有其他任何情况吗?
答案 0 :(得分:4)
使用页面缓存时,数据库缓存也会使您受益。如果您的页面是由多个数据库查询生成的,其中一些数据是常量而另一个数据经常更改。
在这种情况下,您需要将页面缓存设置为较短的时间段,并在每次使用相同的常量数据时从数据库中检索新数据,而不查询数据库。
示例:假设您的频繁数据需要每5分钟刷新一次,而常量数据每24小时更新一次。在这种情况下,您将页面缓存设置为5分钟。在24小时内,您已经为数据库查询了288次频繁数据,但仅查询了常数数据一次。如果您尚未使用数据库缓存,则总计为289个查询而不是576个。