CS-Notes/notes/笔记/MySQL+.md.txt
2018-02-22 14:47:22 +08:00

29 lines
1.2 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 主从复制与读写分离
## 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)