⭐主从复制存在延时 原因是大部分都是顺序读取处理,而当遇到了随机读取处理时,则会出现进程阻塞问题。
因而出现以下规则:
1、更新同一行的多个事务,必须要分发到同一个worker中执行
2、同一个事务不能被拆开,必须要放到同个worker中执行
但以上方法对于多库事务或是连表事务难以操作。因此出现了GTID: 全局事务ID
这个GTID包含了:⭐服务器的唯一标识 和 ⭐递增的事务id
⭐若自己不指定,则有匿名的GTID
那么问题来了⭐常用5.7版本采用的并行复制策略
通过redo 和 binlog 两个日志来一起 判断 事务是成功了还是失败了。
⭐如果成功就将 redo 的prepare阶段内容commit一下
⭐如果失败就将 redo 和 binlog 回滚就行了
mysql中 即写即查的 不适合做读写分离。
提出组提交 :多个事务提交 ——》log ——》刷盘