我正在为具有快速扩展数据库的应用程序奠定基础。目前只有大约12000个用户,已经有一个包含超过500万个记录字段的表。这开始在查询中执行很多次。因此,我开始考虑在有限的时间内(例如30分钟,也许一小时)缓存查询或整个页面。
我在整个用户指南(例如here,here和here)中阅读了很多关于CodeIgniter(v2.1.4)的缓存选项的信息。一堆论坛和关于缓存的SO问题。
我还读了一些关于Memcached和APC缓存方法的内容。基于评论和差异,我想使用APC Caching。
那么,缓存页面是否还包括构成页面内容所需的所有数据?或者每次提供缓存页面时都会执行查询?
如果是后者,如何在有限时间内缓存查询结果(比如前面提到的30或60分钟)以防止数据库变得太忙?
首选的情况是能够存储完整的页面并在每次计时器运行时刷新它们(也没有页面的用户请求)。该页面当然也包括来自查询的新数据。
答案 0 :(得分:0)
使用$this->output->cache(n);
的CI实习生通用缓存(http://ellislab.com/codeigniter/user-guide/general/caching.html)会缓存整个输出(仅在您使用$this->load->view
时才有效)。
问题是,用户相关内容也被缓存并传递给其他用户。我得到了我的经验...
您可以查看详细的caching-lib http://ellislab.com/codeigniter/user-guide/libraries/caching.html。如果你的问题无论如何都与这个图书馆有关,我很遗憾无法帮助你。