mysql purge 线程_2 mysql的purge线程知多少?

2 mysql的purge线程知多少?

前段时间,作者分析了诸多种类的“云里雾里”的死锁状况,例如因为唯一性索引导致的死锁现象,因为操作空行而导致的死锁现象等,对mysql各种操作对数据页中的行的加锁情况基本解析完毕,但还有一类隐含地对数据行(被删除的行)的操作,就是purge线程。

purge线程的作用,是清理回滚段的同时,把被删除的行也从数据块中清除,实现真正的物理上的删除。

因此,作者就在猜想-----这个purge操作也是行操作,这类操作是否会加锁?

如果加锁,那跟用户线程的事务处理中的加锁会不会产生冲突?

如果冲突,那岂不是很难搞定,同时也会莫名奇妙?

因为mysql的管理员没有办法知道purge线程什么时候清理哪个被删除的行,正在清理哪个被删除的行。

希望这些顾虑都是多余的,从作者实际的运维经验中来看----目前为止,还没有发现是因为purge线程的干扰而出现死锁的现象。

好,废话说得太多了,我们还是来实际分析一下,purge线程在数据库中的核心函数吧。

purge线程的前段函数栈如下,可以看到有undo_rec这样的数据结构。

因为数据库的数据页特别多,要清除被删除的页,如果一个一个的找,那代价也太大了,是非常不明智的。......

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值