binlog的日志组引入
引入原因
bingLog、redolog的刷盘操作 是mysql并发写的瓶颈所在
最大化每次刷盘的收益,弱化磁盘瓶颈,提高性能
引入时间
是 5.7版本时,为了优化、缩小半同步复制时同步的粒度 而引入的
引入之前只能以库为粒度去同步、引入以后多个事务为一个组、每次同步一个组内的事务里的改动
具体过程
过程分三个阶段
每个阶段都有一个队列存储 所处于当前阶段的事务
并且每个队列都有一把锁保护
主从复制时加锁
队列里的第一个元素 是整个队列的leader
统一 负责维护整个队列里事务的操作
负责把命令、命令执行结果 通知给组内成员
一个组里有多个事务的数据改动
undolong的删除机制
insert类型
事务提交后,直接清除
update类型
事务提交后,移入垃圾链表里
当一致性视图的版本链里不再包含当前事务修改的版本时才会删除它
即:只有当readview的版本链里中不存在这个事务的事务id时才能被删除
```![在这里插入图片描述](https://img-blog.csdnimg.cn/549cbfc419c7415fb881f946531abf6c.png)