
Zend Framework 在執行 SQL 時,會先再跑一個 SQL,取得 Metadata 資訊後,
才會真正的執行你的 SQL。
所以如果將 Metadata Cache 後,就可以減少一個 SQL 語法,讓 DB 不至於被操到死~~
可以參考:Zend_Db_Table > Caching Table Metadata
我的環境是 : Zend Framework 1.9.5
我在 application > Bootstrap.php
加入:
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
protected function _initDbTableCache() {
// 設定 metadata cache
$fOpt = array(
'automatic_serialization' => true
);
$bOpt = array(
'cache_dir' => '/tmp/_zf_cache'
);
$cache = Zend_Cache::factory('Core', 'File', $fOpt, $bOpt);
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
}
//...... 略
之後只要有 Cache ,就不會再去 DB 查 Metadata 了。
但如果你的 Table 有修改過,可能就要記得去清一下 Cache 了。
我是還沒改過Table ( Alter Table),不確定是不是一定要清,但感覺是要。
下圖,加入 Cache 後,就沒有再去查 Metadata 了。

搞定~
0 comments:
張貼留言