《PHP教程:使用Yii2實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)設(shè)置》要點(diǎn):
本文介紹了PHP教程:使用Yii2實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)設(shè)置,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
相關(guān)主題:YII框架
前言PHP學(xué)習(xí)
MySQL主從同步是目前使用比較廣泛的數(shù)據(jù)庫(kù)架構(gòu),技術(shù)比較成熟,配置也不復(fù)雜,特別是對(duì)于負(fù)載比較大的網(wǎng)站,主從同步能夠有效緩解數(shù)據(jù)庫(kù)讀寫(xiě)的壓力.以前在使用yii1的時(shí)候,主從數(shù)據(jù)庫(kù)的支持沒(méi)有那么方便,只能寫(xiě)上多個(gè)DB的components,然后在AR的getDB中返回相應(yīng)的db.這樣也可以用來(lái)對(duì)付主從數(shù)據(jù)庫(kù)PHP學(xué)習(xí)
實(shí)現(xiàn)方法PHP學(xué)習(xí)
Yii2則已經(jīng)解決這個(gè)問(wèn)題,直接在代碼中進(jìn)行處理即可:
PHP學(xué)習(xí)
PHP代碼PHP學(xué)習(xí)
'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, ], ], ];
是不是感覺(jué)超級(jí)方便,而不止是這樣,你還可以配置從服務(wù)器組:
PHP學(xué)習(xí)
PHP代碼PHP學(xué)習(xí)
'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'], ], ]
更值得稱(chēng)贊的是,主服務(wù)器也是多個(gè)主服務(wù)器的配置就是下面這樣,其中字符編碼集,表前綴等設(shè)置參考上面的.
PHP學(xué)習(xí)
PHP代碼PHP學(xué)習(xí)
'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 ];
果然 是輕輕松松啊.PHP學(xué)習(xí)
當(dāng)然 如果你想更輕松的使用,這些,其實(shí)就是得用YII2的AR.你就用不著改代碼了..PHP學(xué)習(xí)
總結(jié)PHP學(xué)習(xí)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流.PHP學(xué)習(xí)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/2631.html