對(duì)于及時(shí)性要(yào)求不"÷(bù)高(gāo)的(de)數(shù)據查詢,我們可(kě)>≈£以使用(yòng)查詢緩存功能(néng)來(lái)提高(gā↑βπφo)性能(néng),而且無需自(zì)己使用(yòng)緩存方法進行(x≈'>íng)緩存和(hé)獲取。
查詢緩存功能(néng)支持所有(yǒu)的(d¥↕e)數(shù)據庫,并且支持所有(yǒu)的(de)緩存方式和(hé)有(y♠₹ǒu)效期。
在使用(yòng)查詢緩存的(de)時(shí)候,隻需要(yào)'©'✔調用(yòng)Model類的(de)cache方法,<≈例如(rú):
$Model->cache(true)->where('status=1')->select();
如(rú)果使用(yòng)了(le)cache(true) ,則在查詢的(de)同時(shí)會(huì)根據當前的(de)查詢條件(jiβεàn)等信息生(shēng)成一(yī)個(gè)帶有(yǒu)©™唯一(yī)标識的(de)查詢緩存,如(rúσ∑↑γ)果指定了(le)key的(de)話(huà),則直接生(shēng)成名稱為₽≠∏(wèi)key的(de)查詢緩存 ,例如(rú):
$Model->cache('cache_name')->select();
指定key的(de)方式會(huì)讓查詢緩存更加高(gāo)效。∑ε≈
默認情況下(xià)緩存方式采用(yòng)DATA_CACHE_TYPE參數(shù)設置的(de)緩存方式(系統默認值為(wèi)File表₹₩€&示采用(yòng)文(wén)件(jiàn)方式緩存σ♠π),緩存有(yǒu)效期是(shì)DATA_CACHE_TIME參數(shù)設置的(de)時(shí)間(ji↕↓ān),也(yě)可(kě)以單獨制(zhì)定查詢緩存的(deβ"<)緩存方式和(hé)有(yǒu)效期:
$Model->cache(true,60,'xcache')->select();
表示當前查詢緩存的(de)緩存方式為(w ♠èi)xcache,并且緩存有(yǒu)效期為(wèi)60秒(miǎo)。λ✔
同樣的(de)查詢,如(rú)果沒有(yǒu)使用(yòng)cach × e方法,則不(bù)會(huì)獲取或者生(shēng)成任何緩存,即便是Ω<(shì)之前調用(yòng)過Cache方法。
如(rú)果指定了(le)查詢緩存的(de)key的(de)話(hλ$¶uà),則可(kě)以在外(wài)部通 ♣δ✔(tōng)過S方法直接獲取查詢緩存的(de)內(nèi)容,例↕₽←如(rú):
$value = S('cache_name');
除了(le)select方法之外(wài),查詢緩存δ&₹還(hái)支持find和(hé)getField方法, ¶ ≈以及他(tā)們的(de)衍生(shēng)方ε'法(包括統計(jì)查詢和(hé)動态查詢方法)。
// 對(duì)查詢數(shù)據緩存φ®60秒(miǎo)$Model->where($map)->cache('key',60)->find();
具體(tǐ)應用(yòng)的(de)時(shí)候可(kě)Ω✔以根據需要(yào)選擇緩存方式和(hé)緩存有(yǒu)效↔×∞ 期。




