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 去進行寫入的動作了..

[轉]資料庫讀寫分離相关推荐

  1. [心得] 如何利用liquibase進行資料庫版本控制 - 實際練習

    透過上一篇的基本觀念介紹,希望大家應該有一點點感覺了! 這篇我們就來做個簡單的版本演練,加深印象吧! 我使用的環境如下 System : Windows 7 Database : SQL Server ...

  2. mysql hammerdb,[料理佳餚] 用 HammerDB 來執行資料庫 TPC-C 效能量測

    TPC-C 模擬的情境 TPC-C 模擬的情境是一個大型的商品批發商,擁有若干個倉庫,每個倉庫擁有 100000 件商品庫存.負責為 10 個地區供貨,每個地區服務 3000 名客戶,每名客戶平均一筆 ...

  3. 判斷指定資料庫存取權

    -- 判斷具有指定資料庫存取權的相關資訊 USE [master] GO ALTER DATABASE [Test] SET   OFFLINE ; -- 設置離線 GO DECLARE @Statu ...

  4. mysql 遠端,遠端連線 GCE 的 MySQL 資料庫

    情境 每次查詢API執行後都得進vm下MySQL指令用CLI看成果? 身為免費仔推薦一個好用的 database GUI : Sequel pro ,可提供本地端與遠端的資料庫連線. 事前準備 連線遠 ...

  5. FMDB與SQLite 數據庫應用示範:打做一隻簡單的電影資料庫 App

    原文:http://www.appcoda.com/fmdb-sqlite-database/ 作者:GABRIEL THEODOROPOULOS 譯者:kmyhy 通常在 App 中使用數據庫并處理 ...

  6. flask html下拉列表,在Flask框架中,在html做下拉式選單,選完顯示連結MySQL資料庫的資料...

    順便寫了ajax版的,主要是javascript的操作. code要寫的稍微多一點,不過這樣可以分離html,而且更靈活. index.py from flask import Flask, rend ...

  7. MS SQL收縮資料庫

    /* 注意,此存儲過程在建在master數據庫中 */ Create proc shrinkdb (     @db_name varchar(100)----數據庫名稱 ) as begin     ...

  8. oracle10g資料庫調效,資料庫 | 簡睿隨筆 | 學習過程的紀錄與備忘

    選取月份 2021 年 3 月  (7) 2021 年 2 月  (7) 2021 年 1 月  (7) 2020 年 12 月  (10) 2020 年 11 月  (8) 2020 年 10 月 ...

  9. SQL Server 的分散式資料複寫技術

    作者:楊先民 本頁內容 前言 資料庫複寫(Replication)的介紹與使用時機 如何建置資料庫複寫 複寫代理程式 (Replication Agent) 的功能 複寫的種類與使用的時機 設計一個安 ...

最新文章

  1. Linux下find命令详情
  2. linux c socket选项:SO_ERROR
  3. django中的分页
  4. OC基础 代理和协议
  5. SQL Calendar Table
  6. Percent encode in consulting package
  7. NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统
  8. php 支付宝付款接口测试
  9. Lecture 9 Random built Binary Search Trees BSTs
  10. 数据逻辑讨论计算机,1绪论信息技术算法与程序福建教师招考.ppt
  11. loot recycler_loot++ - MC百科搜索 - MC百科|最大的Minecraft中文MOD百科
  12. oracle显示数据中心类异常,Oracle_10g数据库基础教程-参考答案
  13. 香港学计算机,香港求学计算机专业集锦
  14. Python发布自己的模块到Pypi
  15. integer超出范围_BigInteger:可以让超过Integer范围内的数据进行运算
  16. Dependency, Association, Aggregation Composition的四种区别
  17. python运维自动化老男孩_老男孩Python高级运维自动化实战 老男孩Python高级运维开发10期 全套Python视频教程下 ......
  18. 视觉目标跟踪算法收集-实时更新
  19. STM32F1(Cortex M3内核)存储器映射
  20. 2017IMO第五题

热门文章

  1. Nuxt爬坑系列之vuex
  2. Zabbix3.X---Zabbix _Agent主动模式的监控(Active)
  3. 《Effect Java》学习笔记1———创建和销毁对象
  4. 解决linux ssh客户端SSH连接linux服务器很慢的问题
  5. WINDOWS2003 ORACLE10G RAC一步一步 手把手 实录
  6. 利用反射,泛型,静态方法快速获取表单值到Model。
  7. 输入检测的诡异问题--firefox和ie的兼容性
  8. Window 2000 网络操作命令全释
  9. 在github上创建新分支
  10. 备忘录方法与动态规划比较