Mysql支持两种复制方式,基于行的复制和基于语句的复制。 这两种方式都是经过在主库上记录二进制日志、在备库重放日志的方式来实现异步的数据复制。sql
在同一时间点备库上的数据可能与主库存在不一致,而且没法保证主备之间的延迟。服务器
复制一般不会增长主库的开销,主要是启用二进制日志带来的开销,可是出于备份或及时从崩溃中回复的目的,这点开销是必要的。架构
经过复制能够将读操做指向备库来得到更好读读扩展。写操做通常都是在主库上写。在一主库多备库读架构中,写操做会被执行屡次,这时候整个系统读性能取决于写入最慢读那部分。并发
常见读复制方案:负载均衡
这种复制架构实现了获取事件和重放事件的解耦,容许这两个过程异步进行。可是也限制了复制过程,最重要的就是主库上并发运行的查询在备库上只能串行化执行。由于只有一个SQL线程来重放中继日志中的事件。异步