我正在为具有快速扩展数据库的应用程序奠定基础。目前只有大约 12000 个用户,已经有一个包含超过 500 万个记录字段的表。这开始增加执行查询的次数。因此,我开始考虑在有限的时间内(比如 30 分钟,可能是一个小时)缓存查询或整个页面。
我已经阅读了很多关于 CodeIgniter (v2.1.4) 的缓存选项的内容,贯穿整个用户指南(例如这里、这里和这里)以及一堆关于缓存的论坛和 SO 问题。
我还阅读了一些有关 Memcached 和 APC 缓存方法的信息。基于评论和差异,我想使用APC Caching。
那么,缓存页面是否还包括构成页面内容所需的所有数据?还是每次提供缓存页面时都会执行查询?
如果是后者,如何在有限的时间内(比如前面提到的 30 或 60 分钟)缓存查询结果以防止数据库变得太忙?
首选的情况是能够存储完整的页面并在每次计时器运行时刷新它们(也无需用户请求页面)。该页面当然也会包含来自查询的新数据。