读写分离(主从复制)简介

什么是mysql的主从复制?

MySQL主从复制,是指数据可以从一个MySQL数据库服务器主节点复制到一个或者多个从节点。MySQL默认采用异步复制算法,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定数据库,或者特定数据库表。

MySQL主从复制的原理

1)主数据库服务器将数据的改变,记录二进制binlog日志,当主数据库上的数据发生改变时,则将其改变写入到binlog中。

2)从数据库服务器会在一定时间间隔内,对主数据库服务器的binlog进行探测是否发生改变。如果发生改变则开始一个io县城请求Master binlog日志事件。

3)同时主节点为每个io线程启动一个dump线程,用于向其发送二进制事件,并保存至节点本地的中继日志中,从节点将从中继日志中读取binlog在本地重放,使得其数据和主节点的保持一致,最后io线程和sql线程将进入到睡眠状态,等待下一次被唤醒。

MySQL主从复制的种类

 

 

 为什么需要主从复制?

1)在业务复杂的系统中,有这么一个情景,有一句SQL需要锁表,导致暂时不能提供读的服务,那么就很影响运行中的业务。使用主从复制,让主库负责写,从库负责读,这样即使主库发生了锁表的现象,通过读从库也可以保证业务的正常运作。

2)做数据的热备。

3)架构的扩展,业务量越来越大,io访问频率过高,单机无法满足。此时做多库的存储,降低磁盘io访问的频率,提高单个机器的io性能。

MySQL读写分离概述

MySQL读写分离的基本原理是让主数据库服务器处理写操作,从数据库处理读操作。主服务器将写操作的变更同步到各个从节点。

为什么MySQL读写分离可以提供系统的性能?

1)物理服务器增加,机器处理能力提升。硬件换性能。

2)主从在不同的服务器上,极大程度上缓解X锁和S锁的竞争。

3)从数据库服务器可以用myiasm引擎修饰表,提升查询性能。

4)主数据库服务器直接写是并发的,从数据库服务器发送过来的binlog恢复数据是异步,不阻塞从数据库服务器上的读操作。

5)从节点可以单独设置一些参数来提高读的性能。

6)增加冗余,提高可用性。

MySQL主从读写分离的一些方案

1)通过程序实现

2)通过MySQL-proxy来实现。据说这种方案一不稳定二性能不高。

3)自己开发接口实现,成本高不适合小公司。

4)通过阿里巴巴的开源项目Amoeba来实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值