mysql同步复制和异步复制的区别是什么?

  • 来源:网络
  • 更新日期:2020-09-03

摘要:区别:异步复制是Master将事件写入binlog,提交事务,自身并不知道slave是否接收是否处理,不能保证所有事务都被所有slave接收。同步复制是Master提交事务,直到事务在所有slave都已

区别:异步复制是Master将事件写入binlog,提交事务,自身并不知道slave是否接收是否处理,不能保证所有事务都被所有slave接收。同步复制是Master提交事务,直到事务在所有slave都已提交,才会返回客户端事务执行完毕信息。

相关学习推荐:mysql教程(视频)

异步复制

MySQL复制默认是异步复制,Master将事件写入binlog,提交事务,自身并不知道slave是否接收是否处理;

缺点:不能保证所有事务都被所有slave接收。

同步复制

Master提交事务,直到事务在所有slave都已提交,才会返回客户端事务执行完毕信息;

缺点:完成一个事务可能造成延迟。

半同步复制

当Master上开启半同步复制功能时,至少有一个slave开启其功能。当Master向slave提交事务,且事务已写入relay-log中并刷新到磁盘上,slave才会告知Master已收到;若Master提交事务受到阻塞,出现等待超时,在一定时间内Master 没被告知已收到,此时Master自动转换为异步复制机制;

注:半同步复制功能要在Master和slave上开启才会起作用,只开启一边,依然是异步复制。

本文来自php中文网mysql图文教程频道,欢迎学习!