2011-05-03 59 views
-1

我要尋找一個DB緩存系統與我可以通過數據庫表名稱緩存我的查詢緩存查詢。我現在使用CI 1.7.2和mySQL for DB。尋找一個DB緩存系統CodeIgnitor它通過數據庫表

我知道CI有一個內置的數據庫緩存系統,但問題是,它由控制器/方法名稱緩存查詢。我有一個在線軟件,預計每天會有大量的熱門遊戲。所以我不能依賴於控制器/方法命名,因爲當更新查詢時,我不可能通過控制器/方法命名來刪除那些與查詢相關的緩存。而且我也無法刪除所有的緩存,因爲如果是這樣,就不需要使用緩存系統。

請幫我在這個問題上。如果幾乎不可能,那麼請給我建議任何其他最好的方式來服務我的目的。

在此先感謝。

回答

0

您可以使用MP_Cache,將解決你的問題,我強烈相信。這是MP_Cache的User Guide。它與CodeIgniter兼容,你可以緩存你的模型,甚至是你的庫,你可以通過你自己設置緩存名稱。

+0

太棒了!這正是我所期待的。謝謝您的幫助。 – Tareq 2011-05-03 19:07:05

0
+0

能否請您解釋關於如何安裝和笨,我的Web服務器上使用這些緩存系統。 – Tareq 2011-05-03 17:46:56

+0

請檢查我的答案中的memcache鏈接。它有非常好的文檔。您也可以瀏覽:http://blogs.vinuthomas.com/2006/02/06/memcached-with-php/瞭解快速教程。 – anubhava 2011-05-03 17:54:57

+0

很抱歉,我沒有在您的鏈接中找到有關如何在我的WEB服務器中安裝memcache的任何有用信息,這不是我的本地版本apache服務器,以及如何在CodeIgniter中使用此信息。如果您在項目中使用它,請分步指導。 – Tareq 2011-05-03 18:10:15

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都已經被推薦。

+0

感謝您的建議。我對如何在Live WEB服務器中添加這些行感到困惑,因爲我對服務器的控制有限,而且無法編輯** my.cnf **文件的特權? – Tareq 2011-05-04 15:07:55