作者kylekai (我也想有闪光...)
看板PHP
标题[CakePHP]简易实现资料库读写分离
时间Fri May 30 17:16:29 2008
当系统越来越大的时候... 资料库的负担也会越来越大..这时候通常都会靠读写分离来让
系统更稳定. 让资料库更有效率...
在 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
1F:→ tka:这个方法我之前在1.2的版本测无效耶 05/31 22:47
3F:→ tka:後来我是trace cakephp 硬是改掉他 05/31 22:51
4F:→ kylekai:Ya..这两天我也发现了...1.2 model 作法需要不一样..orz.. 06/01 00:25