[CakePHP]簡易實現資料庫讀寫分離

看板PHP作者 (我也想有閃光...)時間17年前 (2008/05/30 17:16), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/4 (看更多)
當系統越來越大的時候... 資料庫的負擔也會越來越大..這時候通常都會靠讀寫分離來讓 系統更穩定. 讓資料庫更有效率... 在 CakePHP 可以靠下面的設定輕鬆達到... database.php 的設定中.. <?php class DATABASE_CONFIG { public $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => '192.160.1.110', 'port' => , 'login' => 'root', 'password' => '1234', 'database' => 'cakephp', 'schema' => , 'prefix' => , 'encoding' => 'UTF8' ); public $master = array( 'driver' => 'mysql', 'persistent' => false, 'host' => '192.168.1.100', 'port' => , 'login' => 'root', 'password' => , 'database' => 'cakephp', 'schema' => , 'prefix' => , 'encoding' => 'UTF8' ); } ?> 先在 database 加入主要負責寫入的 master 主機...而一般負責讀取的主機就放在 default . 然後在 app_model.php 加入下面的處理... <?php class AppModel extends Model { function beforeSave() { $this->useDbConfig = 'master'; } function afterSave() { $this->useDbConfig = 'default'; } function beforeDelete() { $this->useDbConfig = 'master'; } function afterDelete() { $this->useDbConfig = 'default'; } } ?> 這樣在實際執行的時候就會在寫入資料的時候自動切換到 $master 去進行寫入的動作了 .. -- 我是上來領便當的... 逛 php 版, database 版只是順便而已... http://blog.darkhero.net 個人網誌 http://phorum.study-area.org/index.php/board,31.0.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.62.60

05/31 22:47, , 1F
這個方法我之前在1.2的版本測無效耶
05/31 22:47, 1F

05/31 22:51, , 2F
http://tinyurl.com/4t656z 也有人反應無效
05/31 22:51, 2F

05/31 22:51, , 3F
後來我是trace cakephp 硬是改掉他
05/31 22:51, 3F

06/01 00:25, , 4F
Ya..這兩天我也發現了...1.2 model 作法需要不一樣..orz..
06/01 00:25, 4F
文章代碼(AID): #18FyNnkQ (PHP)
文章代碼(AID): #18FyNnkQ (PHP)