区别:异步复制是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图文教程频道,欢迎学习!