6、MySQL锁机制
2021-10-16 16:37:41 0 举报
MySQL锁机制
作者其他创作
大纲/内容
事务A(id=50)
roll_pointer
缓存页
锁trx_id=60等待状态=false
trx_id=50
事务B(id=60)
1、更新完数据
锁trx_id=50等待状态=false
事务B更新这行数据,会先检查这行数据是否加锁若已经加锁,也会生成一个锁事务B是排队等待状态(等待状态=true)
5、生成锁
值A
1、更新数据
2、释放事务A的锁
4、将事务B的锁的等待状态修改为false
5、关联
2、创建锁
事务A更新一行数据如果这行没有加锁,此时事务A会创建一个锁(里面包含事务trx_id和等待状态),然后将锁和这行数据关联在一起
多事务更新同一行数据,如何加锁避免脏写
事务A更新完数据,会将自己的锁给释放掉将事务B的锁等待状态修改为fase,然后唤醒事务B继续执行
4、发现事务A对这行数据已经上锁
3、唤醒事务B
锁trx_id=60等待状态=true
6.更新数据
3、将这行数据和锁数据结构关联起来
0 条评论
回复 删除
下一页