首页 > 数据库技术 > 详细

Mysql InnoDB锁

时间:2019-04-12 18:02:54      阅读:155      评论:0      收藏:0      [点我收藏+]

行锁模式以及加锁方法:

共享锁:X锁

lock in share mode:共享锁(x锁)

开启两个事务,set autocommit=0的含义是设置当前session禁止自动提交,需要显示commit才可以提交。详见:https://www.cnblogs.com/langtianya/p/4777662.html

表结构(自己去建表啊...):

技术分享图片

 

首先对sessionA添加lock in share mod,

技术分享图片

这时共享锁就已经添加上了,sessionB仍然可以查询记录并且可以添加lock in share mode

技术分享图片

 SessionA对当前Session进行update修改数据时就会进入死锁状态(看当前语句已经没有反应了并且右下角的查询时间在一直增加)

技术分享图片

在SessionB中对锁住的这行记录进行修改时就可以解除死锁状态,SessionB中输出DeadlockFound....

技术分享图片

此时SessionA就获得锁可进行更新操作了。。。,再次执行SessionA中的update语句发现可以进行更新了

技术分享图片

最后SessionA进行commit提交就会发现数据库已经成功修改了

 技术分享图片

 

 对事务A执行update

Mysql InnoDB锁

原文:https://www.cnblogs.com/javazyh/p/10697562.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!