欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Yii2實現(xiàn)主從數(shù)據(jù)庫設置

 更新時間:2016年11月20日 09:16:22   投稿:daisy  
大家應該都知道,當項目做大了,數(shù)據(jù)庫主從還是不可少的。使用Yii框架開發(fā),如何設置數(shù)據(jù)庫的主從呢?其實很簡單。下面這篇文章就給大家詳細介紹了使用Yii2實現(xiàn)主從數(shù)據(jù)庫設置的方法,文中介紹的很詳細,相信對大家的理解和學習很有幫助,下面來一起學習學習吧。

前言

MySQL主從同步是目前使用比較廣泛的數(shù)據(jù)庫架構(gòu),技術(shù)比較成熟,配置也不復雜,特別是對于負載比較大的網(wǎng)站,主從同步能夠有效緩解數(shù)據(jù)庫讀寫的壓力。以前在使用yii1的時候,主從數(shù)據(jù)庫的支持沒有那么方便,只能寫上多個DB的components,然后在AR的getDB中返回相應的db。這樣也可以用來對付主從數(shù)據(jù)庫

實現(xiàn)方法

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

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。你就用不著改代碼了。。

總結(jié)

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

相關(guān)文章

最新評論