Yii2的主從資料庫設定
項目做大了,資料庫主從還是不可少的。使用Yii架構開發,如何設定資料庫的主從呢?其實很簡單。
先說一個主要資料庫伺服器和多個從資料庫伺服器的情況,修改設定檔 config/db.php ,其中 slaveConfig 裡的為從伺服器的公用部分,也可以設定到 slaves 裡的各個從伺服器的配置裡。
'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, ], ], // 配置從伺服器組 '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'], ],
還可以主伺服器也是多個的那主伺服器的配置就是下面的樣子,其中字元編碼集,表首碼等設定參考上面的。
// 配置主伺服器 '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'], ],
配置好了,那麼如何使用呢,Yii這點做的特別好,因為你幾乎不用修改你的代碼,不用考慮你代碼裡的資料庫操作如何使用主伺服器配置還是從資料庫配置,架構本身已經實現了。預設系統裡 execut()函數操作的是主庫,其他情況都操作從庫,比如queryAll()。而且對於AR操作也是如此,因為他就是基於Yii::$app->db來實現的。
在Yii2中使用Pjax導致Yii2內聯指令碼載入失敗的問題
Yii2 實現修改密碼功能
Yii 使用者登陸機制
Yii中引入js和css檔案
Yii 不完全解決方案
Yii CGridView 基本使用
Yii架構分布式緩衝的實現方案
Yii 的詳細介紹:請點這裡
Yii 的:請點這裡
本文永久更新連結地址: