在CodeIgniter中寻找DB缓存系统,它按DB表缓存查询

时间:2011-05-03 17:29:12

标签: php mysql caching codeigniter

我正在寻找一个数据库缓存系统,我可以用DB Table Name缓存我的查询。我现在使用CI 1.7.2和mySQL for DB。

我知道CI有一个内置的数据库缓存系统,但问题是它缓存了控制器/方法名称的查询。我有一个在线软件,并期望每天大受欢迎。所以我不能依赖于控制器/方法命名,因为当查询将被更新时,我不可能通过控制器/方法命名来删除查询相关的缓存。而且我也无法删除所有缓存,因为如果是这样,就不需要使用缓存系统。

如果几乎​​不可能,那么请告诉我任何其他最好的方式来实现我的目的。

3 个答案:

答案 0 :(得分:2)

另一个选项 - 我认为通常应该在弄乱CI中的缓存之前尝试 - 是MySQL中的查询缓存。

将以下内容添加到/etc/my.cnf(或您的特定位置)的[mysqld]部分,然后重启mysqld:

query_cache_type=1
query_cache_size = 20M

默认情况下启用查询缓存,缓存大小为20 Megs,您可以根据需要进行调整。在控制器中启用CI输出分析器以查看生成的查询时间(在每次查询的第二次执行时):

$this->output->enable_profiler(TRUE);

如果您需要进一步缩短控制器执行时间,那么我建议您查看已推荐的MP_Cache或APC等解决方案。

答案 1 :(得分:0)

答案 2 :(得分:0)

我坚信,你可以使用能解决问题的MP_Cache。这是MP_Cache的User Guide。它与CodeIgniter兼容,你甚至可以将你的模型缓存到你的库中,你可以自己设置缓存名称。