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

direktori cari
歡迎 目錄 快速參考圖 基本信息 服務(wù)器要求 許可協(xié)議 變更記錄 關(guān)于CodeIgniter 安裝 下載 CodeIgniter 安裝指導(dǎo) 從老版本升級 疑難解答 介紹 開始 CodeIgniter 是什么? CodeIgniter 速記表 支持特性 應(yīng)用程序流程圖 模型-視圖-控制器 架構(gòu)目標(biāo) 教程 內(nèi)容提要 加載靜態(tài)內(nèi)容 創(chuàng)建新聞條目 讀取新聞條目 結(jié)束語 常規(guī)主題 CodeIgniter URL 控制器 保留字 視圖 模型 輔助函數(shù) 使用 CodeIgniter 類庫 創(chuàng)建你自己的類庫 使用 CodeIgniter 適配器 創(chuàng)建適配器 創(chuàng)建核心系統(tǒng)類 鉤子 - 擴(kuò)展框架的核心 自動裝載資源 公共函數(shù) URI 路由 錯誤處理 緩存 調(diào)試應(yīng)用程序 以CLI方式運(yùn)行 管理應(yīng)用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準(zhǔn)測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗(yàn)證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗(yàn)證 XML-RPC 和 XML-RPC 服務(wù)器 Zip 編碼類 緩存適配器 適配器參考 適配器 數(shù)據(jù)庫類 Active Record 類 數(shù)據(jù)庫緩存類 自定義函數(shù)調(diào)用 數(shù)據(jù)庫配置 連接你的數(shù)據(jù)庫 數(shù)據(jù)庫快速入門例子代碼 字段數(shù)據(jù) 數(shù)據(jù)庫維護(hù)類 查詢輔助函數(shù) 數(shù)據(jù)庫類 查詢 生成查詢記錄集 表數(shù)據(jù) 事務(wù) 數(shù)據(jù)庫工具類 JavaScript類 輔助函數(shù)參考 數(shù)組輔助函數(shù) CAPTCHA 輔助函數(shù) Cookie Helper 日期輔助函數(shù) 目錄輔助函數(shù) 下載輔助函數(shù) Email 輔助函數(shù) 文件輔助函數(shù) 表單輔助函數(shù) HTML輔助函數(shù) Inflector 輔助函數(shù) 語言輔助函數(shù) 數(shù)字輔助函數(shù) 路徑輔助函數(shù) 安全輔助函數(shù) 表情輔助函數(shù) 字符串輔助函數(shù) 文本輔助函數(shù) 排版輔助函數(shù) URL 輔助函數(shù) XML 輔助函數(shù)
watak

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請 登錄 或 注冊  找回密碼
查看原文

數(shù)據(jù)庫緩存類

數(shù)據(jù)庫緩存類允許你把數(shù)據(jù)庫查詢結(jié)果保存在文本文件中以減少數(shù)據(jù)庫訪問。

重要提示:? 本類在激活后會隨數(shù)據(jù)庫驅(qū)動自動初始化。切勿手動加載。

另:? 并非所有查詢結(jié)果都能被緩存。請仔細(xì)閱讀本頁內(nèi)容。

激活緩存

激活緩存需要三步:

  • 在服務(wù)器上創(chuàng)建一個可寫的目錄以便保存緩存文件。
  • 在文件 application/config/database.php$db['xxxx']['cachedir'] 設(shè)置其目錄。
  • 激活緩存特性,可以在文件 application/config/database.php 中設(shè)置全局選項(xiàng)$db['xxxx']['cache_on']='TRUE',也可以用以本頁下面的方法手動設(shè)置。

一旦被激活,每一次含有數(shù)據(jù)庫查詢的頁面被加載時緩存就會自動發(fā)生。

緩存如何工作?

當(dāng)頁面被瀏覽時CodeIgniter的查詢緩存系統(tǒng)能夠動態(tài)執(zhí)行。如果緩存特性被激活,那么在此頁面首次被加載時,數(shù)據(jù)庫查詢的結(jié)果對象將會被序列化并保存在你服務(wù)器的文本文件中。而頁面再次被加載時緩存文件將會替代數(shù)據(jù)庫查詢。如此,在被緩存的頁面中,你的數(shù)據(jù)庫使用率會降至0。

只有 讀類型(read-type) (SELECT) 查詢會被緩存,因?yàn)橹挥羞@種查詢會產(chǎn)生結(jié)果集。 寫類型(Write-type) (INSERT, UPDATE, 等等) 查詢,因?yàn)椴粫a(chǎn)生結(jié)果集,故緩存系統(tǒng)不對之進(jìn)行緩存。

緩存文件不會過期,除非你刪掉,否則任何被緩存了的查詢會一直存在。緩存系統(tǒng)允許你按頁面清除,或把所有緩存都清除掉。一般來說,你可以在某些事件(比如向數(shù)據(jù)庫添加了數(shù)據(jù))發(fā)生時用下面的函數(shù)來清除緩存。

緩存能夠提升站點(diǎn)的性能嗎?

緩存能否獲得性能增益,取決于很多因素。如果您有一個負(fù)荷很少而高度優(yōu)化的數(shù)據(jù)庫,你可能不會看到性能提升。 如果您的數(shù)據(jù)庫正在大量使用,您可能會看到緩存后帶來的性能提升,前提是你的文件系統(tǒng)是并沒有太多開銷。(這里'CI中國社區(qū)'要補(bǔ)充一點(diǎn):生成緩存以及索引緩存等一系列操作(緩存系統(tǒng)自身運(yùn)算)也是存在開銷的.) Remember that caching simply changes how your information is retrieved, shifting it from being a database operation to a file-system one.

在一些集群服務(wù)器環(huán)境,會出現(xiàn)這樣的情況,因?yàn)槲募到y(tǒng)的操作太過頻繁,緩存無法正確生成。 在單一的服務(wù)器在共享的環(huán)境,高速緩存可能會是有益的。是否能有性能上的提升應(yīng)還取決于您的數(shù)據(jù)庫。這要看您的具體情況.

緩存文件如何存儲?

CodeIgniter擁有每個 places the result of EACH query into its own cache file. Sets of cache files are further organized into sub-folders corresponding to your controller functions. To be precise, the sub-folders are named identically to the first two segments of your URI (the controller class name and function name).

CI把每次查詢的結(jié)果放置在自己的緩存文件里。根據(jù)你的控制器函數(shù),緩存文件集將被進(jìn)一步組織到子目錄中。準(zhǔn)確的話,子目錄的名稱由你的URI的前兩段(控件器類名和函數(shù)名)決定

For example, let's say you have a controller called blog with a function called comments that contains three queries. The caching system will create a cache folder called blog+comments, into which it will write three cache files.

例如,假設(shè)你有一個控制器blog和一個comments函數(shù),這個函數(shù)包括三個查詢。緩存系統(tǒng)將創(chuàng)建一個叫做blog+comments的目錄并在這個目錄里創(chuàng)建三個緩存文件。

If you use dynamic queries that change based on information in your URI (when using pagination, for example), each instance of the query will produce its own cache file. It's possible, therefore, to end up with many times more cache files than you have queries.

當(dāng)你根據(jù)URI上的信息動態(tài)查詢時(例如使用分頁),每次查詢的實(shí)例將創(chuàng)建自己的緩存文件。因此,經(jīng)過很多次查詢后,緩存文件的個數(shù)可能比你查詢的次數(shù)還多。

管理您的緩存文件

由于緩存文件不會過期,您需要在您的應(yīng)用程序中寫入刪除緩存操作的代碼。例如,假設(shè)您有一個博客,讓用戶發(fā)表評論。每當(dāng)有新的評論被提交 您一定希望在某個控制器的方法中刪除緩存文件與控制器的功能 . 你會發(fā)現(xiàn)如下兩個刪除功能的介紹,可以幫助您清除數(shù)據(jù).

并非所有的數(shù)據(jù)庫方法都帶緩存

最后,我們需要指出的是,由于對象是緩存 是一個簡化版本的全部結(jié)果對象。出于這一原因,一些不具備數(shù)據(jù)查詢結(jié)果的方法不被緩存 如 插入 更新。.

下列方法不能和緩存搭配使用:

  • num_fields()
  • field_names()
  • field_data()
  • free_result()

同樣, the two database resources (result_id and conn_id) are not available when caching, since result resources only pertain to run-time operations.


函數(shù)參考

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

可手動設(shè)置緩存開關(guān)。如果您想保留某些查詢不被緩存 這個功能就十分有用。例如::

// 打開緩存開關(guān)
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM mytable");

// 使下面這條查詢不被緩存
$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");

$this->db->cache_delete()

刪除緩存文件與特定網(wǎng)頁。如果你需要清除緩存后,更新您的數(shù)據(jù)庫.

緩存系統(tǒng)會在緩存存放目錄中建立與被訪問的URL所對應(yīng)的子目錄,同時把緩存文件存放在那個子目錄中.緩存主目錄就是您在application/config/database.php 里面設(shè)置的緩存目錄. 例如, 如果您正在瀏覽地址為 example.com/index.php/blog/comments的頁面, 緩存系統(tǒng)會把所有生成的緩存文件放進(jìn)一個以 blog+comments做為名稱的文件夾里. 如果您要刪除關(guān)于剛才提到的這個例子與之對應(yīng)的緩存文件 需要執(zhí)行以下代碼:

$this->db->cache_delete('/blog', 'comments'); 注意,手冊上寫的是 $this->db->cache_delete('blog', 'comments');但根據(jù)實(shí)際測試應(yīng)該在控制器名字前加斜杠'/'才能正確執(zhí)行。

如果您不使用任何參數(shù),目前的URI設(shè)置將決定什么時候應(yīng)該清除/更新 該緩存.

$this->db->cache_delete_all()

清除所有所有的緩存文件。例子:

$this->db->cache_delete_all();

?

翻譯貢獻(xiàn)者: airyland, baiyuxiong, Drice, Hex, iptton, mchipengfei, soyota, yz20sui, 籠中
最后修改: 2011-12-10 18:58:38
Artikel sebelumnya: Artikel seterusnya: