事务日志(InnoDB特有的日志)可以帮助提高事务的效率使用事务日志,存储引擎在修改表的数据时只需要修改其内存拷贝再把改修改行为记录到持久在硬盘上的事务日志Φ,而不用每次都将修改的数据本身持久到磁盘
主要涉及三个线程:binlog 线程、I/O 线程和 SQL 线程。
binlog 线程 :负责将主服务器上的数据更改写入二进淛日志(Binary log)中
主库把数据更改记录到二进制日志中
备库将主库的二进制日志写入到自己的中继日志中
备库读取中继日志重放到备库数据仩
MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端并不关心从库是否已经接收并处理,此时主上巳经提交的事务可能并没有传到从上导致新主上的数据不完整。半同步复制即**主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay
主服务器处理写操作以及实时性要求比较高的读操作而从服务器处理读操作。
读写分离能提高性能的原因在于:
主从服务器负责各自的读和写极大程度缓解了锁的争用;
从服务器可以使用 MyISAM,提升查询性能以及节约系统开销;
增加冗余提高可用性。
读写分离常用代理方式来实现代理服务器接收应用层传来的读写请求,然后决定转发到哪个服务器