位置: IT常识 - 正文
推荐整理分享mysql临键锁的使用(mysql 临键锁),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql临时密码在哪里,mysql创建临时表sql,mysql临键锁和间隙锁的区别,mysql临时密码在哪里,mysql临建锁,mysql 临键锁,mysql临建锁,mysql临键锁和间隙锁的区别,内容如对您有帮助,希望把文章链接给更多的朋友!
1、默认情况下,innodb使用临键锁锁定记录。
select...forupdate2、当查询索引包含唯一属性时,临键锁将被优化并降级为记录锁,即只锁定索引本身,而不是范围。
3、不同场景下的临键锁会退化。
实例
事务1starttransaction;selectSLEEP(4);select*fromtestwhereage=22forupdate;select*fromtestwhereage>23forupdate;selectsleep(20);commit;**************************事务2starttransaction;selectsleep(8);select*fromtestwhereage=20forupdate;select*fromtestwhereage=21forupdate;select*fromtestwhereage=22forupdate;select*fromtestwhereage=23forupdate;commit;************************************事务执行状态事务1starttransaction>OK>时间:0sselectSLEEP(4)>OK>时间:4.001sselect*fromtestwhereage=22forupdate>Affectedrows:0>时间:0.001sselect*fromtestwhereage>23forupdate>Affectedrows:0>时间:0.001sselectsleep(20)>OK>时间:20scommit>OK>时间:0.001s***********************事务2starttransaction>OK>时间:0.001sselectsleep(8)>OK>时间:8sselect*fromtestwhereage=20forupdate>Affectedrows:0>时间:0.001sselect*fromtestwhereage=21forupdate>Affectedrows:0>时间:0.001sselect*fromtestwhereage=22forupdate>Affectedrows:0>时间:14.158sselect*fromtestwhereage=23forupdate>Affectedrows:0>时间:0.001scommit>OK>时间:0s以上就是mysql临键锁的使用,希望对大家有所帮助。更多mysql学习指路:MySQL
友情链接: 武汉网站建设