YII2中配置MySQL讀寫分離

 

在實際開發中,爲了服務更好的響應,一般會設置數據庫的讀寫分離,主庫負責寫入更新等操做,從庫負責讀操做。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'],
            ],
        ],
    ],
];
相關文章
相關標籤/搜索