周六 17 七 2010
CakePHP+MySQL实现主从数据库读写分离操作
Posted by Jansfer under CakePHP
No Comments
如果项目中使用多数据库Master+Slave实现数据负载分享,那么CakePHP如何对应实现读写分离呢?记得上一篇我们读到beforeFind和beforeSave方法吗?没错,整个实现过程非常简单。
首先修改database.php设置:
'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' ); } ?>
然后修改app_module.php
useDbConfig = 'master';
}
function afterSave() {
$this->useDbConfig = 'default';
}
function beforeDelete() {
$this->useDbConfig = 'master';
}
function afterDelete() {
$this->useDbConfig = 'default';
}
}
?>
如果是多台Slave数据库呢?可以配置$slave_db1, $slave_db2….$slave_db10,然后在用随机数来简单实现从多台Slave获取数据。当然实际上会有更高效的方法实现均衡从多台Slave获取数据,这个下次讲。









