在實際開發中,爲了服務更好的響應,一般會設置數據庫的讀寫分離,主庫負責寫入更新等操做,從庫負責讀操做。mysql
如下是YII2中配置MySQL讀寫分離,一主多從設置。設置好後,這些從庫其中之一將被創建起鏈接並執行讀操做,而主庫將被用來執行寫操做。 這樣的讀寫分離將經過如下配置自動地完成。sql
return [ 'components' => [ 'db' => [ // 主庫配置 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=master_test', 'username' => 'username', 'password' => 'password', 'charset' => 'utf8', // 從庫的通用配置 'slaveConfig' => [ 'username' => 'username', 'password' => 'password', 'attributes' => [ // 使用一個更小的鏈接超時 // 這裏每一個從庫都共同地指定了 10 秒的鏈接超時時間, // 這意味着,若是一個從庫在 10 秒內不能被鏈接上,它將被視爲「掛掉的」。 // 你能夠根據你的實際環境來調整該參數。 PDO::ATTR_TIMEOUT => 10, ], ], // 從庫的配置列表 'slaves' => [ ['dsn' => 'mysql:host=localhost;dbname=slaves_test'], ['dsn' => 'mysql:host=localhost;dbname=slaves_test2'], ], ], ], ];