使用Yii2實(shí)現(xiàn)主從數(shù)據(jù)庫設(shè)置
前言
MySQL主從同步是目前使用比較廣泛的數(shù)據(jù)庫架構(gòu),技術(shù)比較成熟,配置也不復(fù)雜,特別是對(duì)于負(fù)載比較大的網(wǎng)站,主從同步能夠有效緩解數(shù)據(jù)庫讀寫的壓力。以前在使用yii1的時(shí)候,主從數(shù)據(jù)庫的支持沒有那么方便,只能寫上多個(gè)DB的components,然后在AR的getDB中返回相應(yīng)的db。這樣也可以用來對(duì)付主從數(shù)據(jù)庫
實(shí)現(xiàn)方法
Yii2則已經(jīng)解決這個(gè)問題,直接在代碼中進(jìn)行處理即可:
PHP代碼
'db' =>[ 'class' => 'yii\db\Connection', // 配置主服務(wù)器 'dsn' => 'dsn for master server', 'username' => 'master', 'password' => '', 'charset' => 'utf8', 'tablePrefix' => 'php_',//默認(rèn)為空 // 配置從服務(wù)器 'slaveConfig' => [ 'username' => 'slave', 'password' => '', 'charset' => 'utf8', 'tablePrefix' => 'php_', 'attributes' => [ // use a smaller connection timeout PDO::ATTR_TIMEOUT => 10, ], ], ];
是不是感覺超級(jí)方便,而不止是這樣,你還可以配置從服務(wù)器組:
PHP代碼
'db'=>[ //...上面是一些標(biāo)準(zhǔn)配置 'slaves' => [ ['dsn' => 'dsn for slave server 1'], ['dsn' => 'dsn for slave server 2'], ['dsn' => 'dsn for slave server 3'], ['dsn' => 'dsn for slave server 4'], ], ]
更值得稱贊的是,主服務(wù)器也是多個(gè)主服務(wù)器的配置就是下面這樣,其中字符編碼集,表前綴等設(shè)置參考上面的。
PHP代碼
'db'=>[ // 配置主服務(wù)器 'masterConfig' => [ 'username' => 'master', 'password' => '', 'attributes' => [ // use a smaller connection timeout PDO::ATTR_TIMEOUT => 10, ], ], // 配置主服務(wù)器組 'masters' => [ ['dsn' => 'dsn for master server 1'], ['dsn' => 'dsn for master server 2'], ], //other ...slaves ];
果然 是輕輕松松啊。
當(dāng)然 如果你想更輕松的使用,這些,其實(shí)就是得用YII2的AR。你就用不著改代碼了。。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
- yii2.0數(shù)據(jù)庫遷移教程【多個(gè)數(shù)據(jù)庫同時(shí)同步數(shù)據(jù)】
- Yii2.0高級(jí)框架數(shù)據(jù)庫增刪改查的一些操作
- Yii2框架數(shù)據(jù)庫簡(jiǎn)單的增刪改查語法小結(jié)
- Yii2——使用數(shù)據(jù)庫操作匯總(增刪查改、事務(wù))
- YII2數(shù)據(jù)庫查詢實(shí)踐
- Yii2數(shù)據(jù)庫操作常用方法小結(jié)
- Yii2實(shí)現(xiàn)跨mysql數(shù)據(jù)庫關(guān)聯(lián)查詢排序功能代碼
- Yii2框架實(shí)現(xiàn)數(shù)據(jù)庫常用操作總結(jié)
- yii2 數(shù)據(jù)庫讀寫分離配置示例
- 詳解yii2使用多個(gè)數(shù)據(jù)庫的案例
- Yii2框架操作數(shù)據(jù)庫的方法分析【以mysql為例】
- YII2框架中操作數(shù)據(jù)庫的方式實(shí)例分析
- yii2.0框架數(shù)據(jù)庫操作簡(jiǎn)單示例【添加,修改,刪除,查詢,打印等】
相關(guān)文章
php+webSoket實(shí)現(xiàn)聊天室示例代碼(附源碼)
本篇文章主要介紹了php+webSoket搭建chatServer示例(附源碼)的資料,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2017-02-02PHP 使用pcntl和libevent 實(shí)現(xiàn)Timer功能
PHP 中實(shí)現(xiàn)Timer功能,中間使用到了php多線程,本文給出來pcntl的解釋。2013-10-10php+lottery.js實(shí)現(xiàn)九宮格抽獎(jiǎng)功能
這篇文章主要介紹了php+lottery.js制作九宮格抽獎(jiǎng)實(shí)例,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07判斷、添加和刪除WordPress置頂文章的相關(guān)PHP函數(shù)小結(jié)
這篇文章主要介紹了判斷、添加和刪除WordPress置頂文章的相關(guān)PHP函數(shù)小結(jié),需要的朋友可以參考下2015-12-12Thinkphp 框架基礎(chǔ)之入口文件功能、定義與用法分析
這篇文章主要介紹了Thinkphp 框架基礎(chǔ)之入口文件功能、定義與用法,結(jié)合實(shí)例形式分析了Thinkphp入口文件基本功能、原理、定義與操作注意事項(xiàng),需要的朋友可以參考下2020-04-04Yii+upload實(shí)現(xiàn)AJAX上傳圖片的方法
這篇文章主要介紹了Yii+upload實(shí)現(xiàn)AJAX上傳圖片的方法,實(shí)例分析了Yii結(jié)合upload插件實(shí)現(xiàn)ajax上傳的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07PHP程序員簡(jiǎn)單的開展服務(wù)治理架構(gòu)操作詳解(一)
這篇文章主要介紹了PHP程序員簡(jiǎn)單的開展服務(wù)治理架構(gòu)操作,結(jié)合實(shí)例形式詳細(xì)分析了PHP開展服務(wù)治理架構(gòu)操作相關(guān)原理、RPC通信實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2020-05-05