亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
文字

數(shù)據(jù)庫緩存類允許您將查詢緩存為文本文件,以減少數(shù)據(jù)庫負(fù)載。

重要

當(dāng)啟用緩存時(shí),該類由數(shù)據(jù)庫驅(qū)動(dòng)程序自動(dòng)初始化。不要手動(dòng)加載這個(gè)類。

重要

使用緩存時(shí),并非所有查詢結(jié)果函數(shù)都可用。請(qǐng)仔細(xì)閱讀這一頁。

啟用緩存

緩存分三個(gè)步驟啟用:

  • 在您的服務(wù)器上創(chuàng)建一個(gè)可寫目錄,在那里可以存儲(chǔ)緩存文件。

  • 在應(yīng)用程序/config/database.php文件中設(shè)置緩存文件夾的路徑。

  • 通過在application/config/database.php文件中設(shè)置首選項(xiàng),或者手動(dòng)地啟用緩存特性,如下所述。

一旦啟用,每當(dāng)加載包含數(shù)據(jù)庫查詢的頁面時(shí),緩存將自動(dòng)發(fā)生。

緩存是如何工作的?

CodeIgniter的查詢緩存系統(tǒng)在查看頁面時(shí)動(dòng)態(tài)發(fā)生。啟用緩存時(shí),首次加載網(wǎng)頁時(shí),查詢結(jié)果對(duì)象將被序列化并存儲(chǔ)在服務(wù)器上的文本文件中。下一次加載頁面時(shí),將使用緩存文件而不是訪問數(shù)據(jù)庫。對(duì)于已緩存的任何頁面,您的數(shù)據(jù)庫使用率可以有效地降至零。

只有讀取類型(SELECT)查詢可以被緩存,因?yàn)檫@些是產(chǎn)生結(jié)果的唯一類型的查詢。寫入類型(INSERT,UPDATE等)查詢,因?yàn)樗鼈儾簧山Y(jié)果,不會(huì)被系統(tǒng)緩存。

緩存文件不會(huì)過期。任何已被緩存的查詢將保留緩存,直到您將其刪除。緩存系統(tǒng)允許您清除與單個(gè)頁面關(guān)聯(lián)的緩存,或者可以刪除整個(gè)緩存文件集合。通常情況下,您需要使用下面介紹的內(nèi)務(wù)管理功能在發(fā)生特定事件后刪除緩存文件,例如在將新信息添加到數(shù)據(jù)庫時(shí)。

緩存會(huì)改善網(wǎng)站的性能嗎?

由于緩存而獲得性能增益取決于許多因素。如果您的負(fù)載非常輕微,并且具有高度優(yōu)化的數(shù)據(jù)庫,那么您可能看不到性能提升。如果你的數(shù)據(jù)庫被大量使用,你可能會(huì)看到一個(gè)改進(jìn)的響應(yīng),假設(shè)你的文件系統(tǒng)沒有過度征稅。請(qǐng)記住,緩存只會(huì)改變您的信息檢索方式,將其從數(shù)據(jù)庫操作轉(zhuǎn)移到文件系統(tǒng)。

例如,在一些集群服務(wù)器環(huán)境中,由于文件系統(tǒng)操作非常激烈,緩存可能是有害的。在共享環(huán)境中的單個(gè)服務(wù)器上,緩存可能會(huì)有所幫助。不幸的是,你是否應(yīng)該緩存數(shù)據(jù)庫的問題沒有單一的答案。這真的取決于你的情況。

緩存文件是如何存儲(chǔ)的?

CodeIgniter將每個(gè)查詢的結(jié)果放入它自己的緩存文件中。緩存文件集進(jìn)一步組織到與您的控制器功能相對(duì)應(yīng)的子文件夾中。確切地說,子文件夾的名稱與您的URI的前兩個(gè)段(控制器類名稱和函數(shù)名稱)的名稱完全相同。

例如,假設(shè)您有一個(gè)名為blog的控制器,其中包含一個(gè)名為comments的函數(shù),其中包含三個(gè)查詢。緩存系統(tǒng)將創(chuàng)建一個(gè)名為blog + comments的緩存文件夾,其中將寫入三個(gè)緩存文件。

如果您使用基于URI中信息更改的動(dòng)態(tài)查詢(例如,在使用分頁時(shí)),則查詢的每個(gè)實(shí)例都將生成自己的緩存文件。因此,有可能最終獲得的緩存文件比查詢多得多。

管理緩存文件

由于緩存文件不會(huì)過期,因此您需要在應(yīng)用程序中創(chuàng)建刪除例程。例如,假設(shè)您有一個(gè)允許用戶評(píng)論的博客。無論何時(shí)提交新評(píng)論,您都需要?jiǎng)h除與提供評(píng)論的控制器功能相關(guān)聯(lián)的緩存文件。您會(huì)發(fā)現(xiàn)下面介紹的兩個(gè)刪除功能,可幫助您清除數(shù)據(jù)。

并非所有數(shù)據(jù)庫函數(shù)都使用緩存

最后,我們需要指出,被緩存的結(jié)果對(duì)象是完整結(jié)果對(duì)象的簡化版本。出于這個(gè)原因,一些查詢結(jié)果函數(shù)不可用。

當(dāng)使用緩存的結(jié)果對(duì)象時(shí),下列函數(shù)不可用:

  • NUM_FIELDS()

  • FIELD_NAMES()

  • field_data()

  • free_result()

此外,兩個(gè)數(shù)據(jù)庫資源(result_id和conn_id)在緩存時(shí)不可用,因?yàn)榻Y(jié)果資源僅與運(yùn)行時(shí)操作有關(guān)。

功能參考

$ this-> db-> cache_on()/ $ this-> db-> cache_off()

手動(dòng)啟用/禁用緩存。如果你想保持某些查詢不被緩存,這會(huì)很有用。例:

// Turn caching on
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM mytable");
// Turn caching off for this one query
$this->db->cache_off();
$query = $this->db->query("SELECT * FROM members WHERE member_id = '$current_user'");
// Turn caching back on
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM another_table");

$這個(gè) - > DB-> cache_delete()

刪除與特定頁關(guān)聯(lián)的緩存文件。如果您需要在更新數(shù)據(jù)庫后清除緩存,這是非常有用的。

緩存系統(tǒng)將緩存文件保存到與您正在查看的頁面的URI相對(duì)應(yīng)的文件夾。例如,如果您正在example.com/index.php/blog/comments上查看頁面,則緩存系統(tǒng)會(huì)將與其關(guān)聯(lián)的所有緩存文件放在名為blog + comments的文件夾中。要?jiǎng)h除您將使用的特定緩存文件:

$this->db->cache_delete('blog', 'comments');

如果不使用任何參數(shù),則在確定應(yīng)清除哪些內(nèi)容時(shí)將使用當(dāng)前URI。

$這個(gè) - > DB-> cache_delete_all()

清除所有現(xiàn)有的緩存文件。例子:

$this->db->cache_delete_all();
上一篇: 下一篇: