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:
張貼留言