1)主从复制解决了什么问题?
优点:
1.减轻主库的压力(因为一般的业务都是读多写少的。让写的任务都落到主库,读的任务都落到从,这样主库的压力就会减轻,从而提高网站的吞吐量)
2.数据备份
缺点:
1.【异步复制】不一致时间窗口(会导致从库查不到,变更的数据)
2.【同步复制】牺牲性能
1)注意点
1.master写二进制日志,也是有事物,(和持久化到数据库是同一个事物)
工作原理图:
主从复制的原理:
主从复制有三种类型:
分为 1.同步复制 【保证了数据的强一致性,但是牺牲了性能,高并发不建议采用】
master接受一个变更数据的请求(增,删,改),将变更的信息sql保存到自己的二进制日志中,因为是同步复制,所以要等到从库同步过这条sql才给用户返回成功
2.异步复制(提高了性能,但是有可能看不到新变更的数据)
master接受一个变更数据的请求(增,删,改),将变更的信息sql保存到自己的二进制日志中,就给用户返回成功,之后从库一个监听主库二进制日志的线程,读取到改变的sql,同步到从库中继日志中,然后由执行sql的一个线程,执行这个sql这样从库就有了这条数据。(但是有一个不一致时间段)
3.半同步复制 (可以将同步复制的机器作为备机)
master接受一个变更数据的请求(增,删,改),将变更的信息sql保存到自己的二进制日志中,因为是半同步复制,所以要等到其中一个从库同步过这条sql才给用户返回成功,其他都是异步的同步的从库中