用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3838|回复: 2
收起左侧

[版本 2.x] 同一个页面有2个相同的sql查询,第二次查询时不会真的查询数据库,求解

[复制链接]
发表于 2012-1-7 14:54:44 | 显示全部楼层 |阅读模式
咨询一个比较懒的问题:
咨询前说明:
1.我忘记这个属于手册上的哪个内容
2.有些懒再次全部查一次手册(扔砖头吧,蛋疼的急于想知道我的这点疑惑)
3.记忆中使得认为不是下面这个内容(数据库缓存类)
$this->db->cache_on()  /   $this->db->cache_off()

1.同一个页面有2个相同的sql查询
2.记得当初看手册的时候好像(不确定)看到有这样的一个现象(不确定是否是缓存)
3.就是第一次查询的时候后,第二次再次同样的查询时,直接会使用第一次的缓存(这里不确定是否缓存,为了表达使用缓存二字代替)

官方一号群也发了,3分钟过去后

Bob 的回答:
数据库缓存类允许你把数据库查询结果保存在文本文件中以减少数据库访问
应该就是这个了

我:
这个理解,问题是我好想在手册上看到这样一个方法,第一次查询(貌似是没有生成文件缓存的),第二次查询还是使用第一次查询的结果而不用查询数据库。
这个好像,不知道机率有多高,因为记忆告诉我手册好像有这个功能的介绍
当然,也许是我痴心妄想
发表于 2012-1-8 05:42:41 | 显示全部楼层
是这个吗?

http://codeigniter.org.cn/user_guide/database/caching.html

仅记设定好application/config/database.php内的cachedir,记忆中,若不设cachedir,即使设定好application/config/database.php内的cache_on为TRUE或使用$this->db->cache_on(),CodeIgniter在访问数据库时亦会自动把cache关掉。Cache on成了无效。

WAMP访问权不严格,应无问题,但使用LAMP的要注意cachedir是否可进入,建立文件及写入文件。

数据库的Cache并不会自动被删除,若使用Cache on后相关的数据在数据库内更新了,Cache on时仍会读入cachedir内的旧数据。更新数据库后要仅记删除了Cache。

中文手册的翻译又出了问题
如果您不使用任何参数,目前的URI设置将决定什么时候应该清除/更新 该缓存.


原文是
If you do not use any parameters the current URI will be used when determining what should be cleared.

应译为
如果您不使用任何参数,当要决定应该清除甚么时,将会认为是目前URI相关的缓存。

"when determining"并非“决定什么时候”,而是“当要决定...时”。
 楼主| 发表于 2012-1-10 11:02:32 | 显示全部楼层
燃雲 发表于 2012-1-8 05:42
是这个吗?

http://codeigniter.org.cn/user_guide/database/caching.html

这个在我头脑中的记忆,想来想去应该是这个数据库缓存了,看了手册的,有些语言难理解,你的修正后,豁然开朗,而且把一些注意到的细节都提了出来。

希望跟我有一样疑问的朋友,看了后也能明白。

感激之

本版积分规则