一、基于只读账号的读写分离
3. 在弹出的对话框,设置账号信息,创建为只读账号设置为是,单击确认,下一步。
4. 在弹出的对话框,选择只读请求分配策略,定义在备机故障(或延迟较大)时的读策略,及设置只读备机延迟参数,单击确定。
·选择主机则全部备机延迟时,从主机读取。
·选择直接报错则全部备机延迟时,直接报错。
·选择只从备机读取则忽略备机延迟,一直从备机读取(一般用于拉取 binlog 同步)。
·只读备机延迟参数定义数据同步延迟时间。
| 分配策略 | 只读固定备机 | 不只读固定备机 |
| 主机 | 延迟后,若大于延迟参数,则切换到主机读取 | 延迟后,若大于延迟参数,则先读其他备机,其他备机延迟后切换到主机读取 |
| 直接报错 | 延迟后,若大于延迟参数,则直接报错 | 延迟后,若大于延迟参数,则先读其他备机,其他备机延迟后直接报错 |
| 只从备机读取 | 延迟后,只读固定备机 | – |
注意:说明:
注意:若需要修改只读账号设置,可以在账号列表,在操作列选择更多 > 修改只读分配策略。
二、基于注释的读写分离
在每条需要从机“读”的 SQL 前,增加 /*slave*/ 字段,并且 mysql 后面增加 -c 参数来解析注释 mysql -c -e "/*slave*/sql",即可自动将“读”请求分配到从机,代码示例如下:
//主机读//select * from emp order by sal,deptno desc;//从机读///*slave*/ select * from emp order by sal,deptno desc;