[轉]資料庫讀寫分離
From : http://blog.darkhero.net/archives/288
當(dāng)系統(tǒng)越來(lái)越大的時(shí)候…
資料庫(kù)的負(fù)擔(dān)也會(huì)越來(lái)越大..這時(shí)候通常都會(huì)靠讀寫(xiě)分離來(lái)讓系統(tǒng)更穩(wěn)定. 讓資料庫(kù)更有效率…
在 CakePHP 可以靠下面的設(shè)定輕鬆達(dá)到…
database.php 的設(shè)定中..
[code]<?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'
?? ?);
?? ?
}
?>[/code]
先在 database 加入主要負(fù)責(zé)寫(xiě)入的 master 主機(jī)…而一般負(fù)責(zé)讀取的主機(jī)就放在 default .
然後在 app_model.php 加入下面的處理…
[code]<?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';
?? ?}
}
?>
[/code]
這樣在實(shí)際執(zhí)行的時(shí)候就會(huì)在寫(xiě)入資料的時(shí)候自動(dòng)切換到 $master 去進(jìn)行寫(xiě)入的動(dòng)作了..
總結(jié)
以上是生活随笔為你收集整理的[轉]資料庫讀寫分離的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C#操作Excel时,Excel常用的方
- 下一篇: 从菜鸟到老鸟--Mac篇 [五]