29 lines
1.2 KiB
Plaintext
29 lines
1.2 KiB
Plaintext
# 主从复制与读写分离
|
||
|
||
## 1. 主从复制
|
||
|
||
![](index_files/QQ_u622A_u56FE20180220095110.png)
|
||
|
||
主要涉及三个线程:binlog 线程、I/O 线程和 SQL 线程。
|
||
|
||
1. **binlog 线程**:负责将主服务器上的数据更改写入二进制文件(binlog)中。
|
||
2. **I/O 线程**:负责从主服务器上读取二进制日志文件,并写入中继日志中。
|
||
3. **SQL 线程**:负责读取中继日志并重放其中的 SQL 语句。
|
||
|
||
## 2. 读写分离
|
||
|
||
![](index_files/QQ_u622A_u56FE20180220095116.png)
|
||
|
||
主服务器用来处理写操作,而从服务器用来处理读操作。
|
||
|
||
读写分离常用代理方式来实现,代理服务器接收应用层传来的读写请求,然后决定转发到哪个服务器,例如 Amoeba 代理服务器。
|
||
|
||
MySQL 读写分离能提高性能的原因在于:
|
||
|
||
1. 主从服务器负责各自的读和写,极大程度缓解了锁的争用;
|
||
2. 从服务器可以配置 MyISAM 引擎,提升查询技能以及节约系统开销;
|
||
3. 增加冗余,提高可用性。
|
||
|
||
- [MySQL 读写分离介绍及搭建 ](https://segmentfault.com/a/1190000003716617)
|
||
- [Mysql 分表和分区的区别、分库分表介绍与区别 ](http://www.cnblogs.com/langtianya/p/4997768.html)
|