zoukankan      html  css  js  c++  java
  • [轉]資料庫讀寫分離

    From : http://blog.darkhero.net/archives/288

    當系統越來越大的時候…
    資料庫的負擔也會越來越大..這時候通常都會靠讀寫分離來讓系統更穩定. 讓資料庫更有效率…

    在 CakePHP 可以靠下面的設定輕鬆達到…

    database.php 的設定中..
    [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 加入主要負責寫入的 master 主機…而一般負責讀取的主機就放在 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]

    這樣在實際執行的時候就會在寫入資料的時候自動切換到 $master 去進行寫入的動作了..

  • 相关阅读:
    随笔导航
    利用CORDIC算法计算三角函数
    粒子群算法求一元函数最值问题
    基于粒子群算法的分组背包MATLAB实现
    遇到过的MATLAB函数小总结
    FFT原理及C++与MATLAB混合编程详细介绍
    DPSK通信系统的FPGA实现
    矩阵QR分解的MATLAB与C++实现
    矩阵LU分解的MATLAB与C++实现
    两种频率调制(FM)方法的MATLAB实现
  • 原文地址:https://www.cnblogs.com/Athrun/p/php_db_read_write.html
Copyright © 2011-2022 走看看