简介
数据库读写分离是在网站遇到性能瓶颈的时候最先考虑优化的步骤,那么yii2是如何做数据库读写分离的呢?本节教程来给大家普及一下yii2的数据库读写分离配置。
两个服务器的数据同步是读写分离的前提条件,但这不在yii2读写分离教程内,yii2的数据库读写分离配置,仅仅实现了在主库读写,在从库查询,那么我们首先要配置主从服务器的数据同步。详情查看linux数据库主从同步配置
配置
主从服务器数据库同步完成之后,我们就可以开始yii2的读写分离配置,官方也有这方面的文档,但说的并不清楚,也没有实际的例子,酱油君在这里加以完善。
1.打开我们的数据库配置文件common\config\main-local.php在db属性中做如下配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
'db'
=> [
'class'
=>
'yii\db\Connection'
,
// 配置主服务器
'dsn'
=>
'mysql:host=192.168.0.1;dbname=hyii2'
,
'username'
=>
'root'
,
'password'
=>
'root'
,
'charset'
=>
'utf8'
,
// 配置从服务器
'slaveConfig'
=> [
'username'
=>
'root'
,
'password'
=>
'root'
,
'attributes'
=> [
// use a smaller connection timeout
PDO::ATTR_TIMEOUT => 10,
],
'charset'
=>
'utf8'
,
],
// 配置从服务器组
'slaves'
=> [
[
'dsn'
=>
'mysql:host=192.168.0.2;dbname=hyii2'
],
],
],
|
如上配置就能实现yii2数据库读写分离的操作,很简单,只要一个配置就ok了,读写分离的功能由后台代码自动完成.调用者无须关心。