lock0lock.c里面函数总结

google了大部分资料,结合自己的理解,总结下lock0lock.c文件里函数

死锁相关函数

lock_deadlock_recursive():死锁判断 死锁日志产生

lock_deadlock_trx_print():死锁中事务信息处理打印

lock_deadlock_lock_print():每个事务持有、等待的锁信息

lock_rec_print():记录被锁的信息


lock_sys_create(): db启动时创建锁系统


一致性读检查记录

lock_clust_rec_cons_read_sees():  在一致性读情况下,查找某记录是否能被看到。能被查找到返回true;如果更早期版本被检索,返回false 。 主要参数 


lock_sec_rec_cons_read_sees():在一致性读情况下,非聚簇索引记录是否能被查到


锁相关的几个重要函数:

 lock_table (): 负责加表锁

lock_rec_lock():锁记录的重要函数

row0mysql.cc::row_lock_table_autoinc_for_mysql(): 负责管理表auto increment自增锁的重要函数。自增锁 是表基本锁。

(ps: auto_increment 自增锁 因为是表锁,锁粒度高,在高并发情况下,会大大影响insert性能)



死锁回滚的事务:姜承尧《mysql核心内幕 innodb引擎》中说redo产生量少的事务被选中回滚;有的说根据事务的权重,权重小的事务被选中回滚,这个需要再仔细看看源码

row0sel.c::row_search_for_mysql():重要函数,预防死锁处理逻辑,比较复杂。


后续继续补充


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值