[CakePHP]簡易實現資料庫讀寫分離
當系統越來越大的時候... 資料庫的負擔也會越來越大..這時候通常都會靠讀寫分離來讓
系統更穩定. 讓資料庫更有效率...
在 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
05/31 22:47, 1F
→
05/31 22:51, , 2F
05/31 22:51, 2F
→
05/31 22:51, , 3F
05/31 22:51, 3F
→
06/01 00:25, , 4F
06/01 00:25, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章