主从复制以及主从复制的作用:
在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需要的,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。
mysql支持的复制类型:
1、基于语句的复制:在服务器上执行sql语句,在从服务器上执行同样的语句,mysql默认采用基于语句的复制,执行效率高。
2、基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍。
3、混合类型复制:默认采用基于语句的复制,一单发现基于语句无法精确复制时,就采用基于行的复制。
复制的工作过程:
1、在每个事务更新数据完成之前,master在二进制日志记录这些改变。写入二进制日志完成后,master通知存储引擎提交事务。
2、slave将master的binary log复制到其中继日志。首先slave开始一个工作线程(I/O),I/O线程在master上打开一个普通的连接,然后开始binlog dump process。binlog dump proceess从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件,I/O线程将这些事件写入中继日志。
3、sql slave thread(sql从线程)处理该过程的最后一步,sql线程从中继日志中读取事件,并重放其中的事件而更新slave数据,使其与master中的数据一致,只要该线程与I/O线程保持一致,中继日志通常会位于os缓存中,所以中继日志的开销很小。
mysql读写分离原理
读写分离就是在主服务器上修改,数据同步到从服务器,从服务器只能提供读取数据,不能写入,实现备份的同时也实现了数据库性能的优化,以及提升服务器安全。