一、什么是读写分离
读写分离基本的原理是让主数据库处理事务增删改查操作,而从数据库处理select查询操作。二、为什么要读写分离
因为数据库的“写”(写10000数据可能要三分钟)比较消耗时间;
但是数据库读的话10000数据可能要用五分钟;
所以读写分离,解决的是,数据库的写人,影响了查询的效率
- 啥时候要读写分离数据不一定要读写分离,如果数据库使用较多时,更新时较少,查询多的情况下考虑使用。利用数据库主从同步,再通过读写分离可承担数据库压力,提高性能。
- MySQL支持的复制类型
- STATEMENT:语句复制在服务器上执行sql语句,在服务器上执行相同的语句,MySQL默认采用基于语句复制,执行效率更高。
- ROW:基于行的复制把改变的内容复制过去,从而把命令在从服务器上执行一遍
- MIXED:混合类型的复制
发现基于语句无法精确复制时,就会采用基于行的复制
五、主从复制的工作过程
1、主服务器在更新前会写入二进制日志。
2、主服务器的dump线程开启,传送到从服务器的l/o线程,从而取主服务器的二进制日志,再写入中继日志
六、MySQL常见的读写分离一下两种
1、基于程序代码内部实现
代码中根据select,inster进行路由分类,这类型也是目前生产环境最广泛的。
优点是性能好,因为在程序代码中实现,不需要增加额外的设备为硬件开支
- 基于中间代理层实现
代理一般用于用户端和服务器端之间,代理服务器接到客户端请求后通过判断和转发到后端数据库。