使用Yii2實現主從資料庫設定_php執行個體

來源:互聯網
上載者:User

前言

MySQL主從同步是目前使用比較廣泛的資料庫結構描述,技術比較成熟,配置也不複雜,特別是對於負載比較大的網站,主從同步能夠有效緩解資料庫讀寫的壓力。以前在使用yii1的時候,主從資料庫的支援沒有那麼方便,只能寫上多個DB的components,然後在AR的getDB中返回相應的db。這樣也可以用來對付主從資料庫

實現方法

Yii2則已經解決這個問題,直接在代碼中進行處理即可:

PHP代碼

'db' =>[    'class' => 'yii\db\Connection',    // 配置主伺服器   'dsn' => 'dsn for master server',   'username' => 'master',   'password' => '',   'charset' => 'utf8',   'tablePrefix' => 'php_',//預設為空白    // 配置從伺服器   'slaveConfig' => [     'username' => 'slave',     'password' => '',     'charset' => 'utf8',    'tablePrefix' => 'php_',     'attributes' => [       // use a smaller connection timeout       PDO::ATTR_TIMEOUT => 10,     ],      ], ]; 

是不是感覺超級方便,而不止是這樣,你還可以配置從伺服器組:

PHP代碼

'db'=>[   //...上面是一些標準配置   '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'],   ],  ] 

更值得稱讚的是,主伺服器也是多個主伺服器的配置就是下面這樣,其中字元編碼集,表首碼等設定參考上面的。

PHP代碼

'db'=>[   // 配置主伺服器   'masterConfig' => [     'username' => 'master',     'password' => '',     'attributes' => [       // use a smaller connection timeout       PDO::ATTR_TIMEOUT => 10,     ],   ],    // 配置主伺服器組   'masters' => [     ['dsn' => 'dsn for master server 1'],     ['dsn' => 'dsn for master server 2'],   ],   //other ...slaves ]; 

果然 是輕輕鬆鬆啊。

當然 如果你想更輕鬆的使用,這些,其實就是得用YII2的AR。你就用不著改代碼了。。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.