网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

mysql临键锁如何使用

这篇文章主要介绍“MySQL临键锁如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql临键锁如何使用”文章能帮助大家解决问题。

我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、丰城ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的丰城网站制作公司

1、默认情况下,innodb使用临键锁锁定记录。

select ... for update

2、当查询索引包含唯一属性时,临键锁将被优化并降级为记录锁,即只锁定索引本身,而不是范围。

3、不同场景下的临键锁会退化。

实例

事务1
 
start transaction;
select SLEEP(4);
select * from test where age=22 for update;
select * from test where age>23 for update;
select sleep(20);
commit;
 
**************************
事务2
 
start transaction;
select sleep(8);
select * from test where age=20 for update;
select * from test where age=21 for update;
select * from test where age=22 for update;
select * from test where age=23 for update;
commit;
 
 
************************************
事务执行状态
 
事务1
 
start transaction
> OK
> 时间: 0s
 
 
select SLEEP(4)
> OK
> 时间: 4.001s
 
 
select * from test where age=22 for update
> Affected rows: 0
> 时间: 0.001s
 
 
select * from test where age>23 for update
> Affected rows: 0
> 时间: 0.001s
 
 
select sleep(20)
> OK
> 时间: 20s
 
 
commit
> OK
> 时间: 0.001s
 
 
***********************
事务2
 
start transaction
> OK
> 时间: 0.001s
 
 
select sleep(8)
> OK
> 时间: 8s
 
 
select * from test where age=20 for update
> Affected rows: 0
> 时间: 0.001s
 
 
select * from test where age=21 for update
> Affected rows: 0
> 时间: 0.001s
 
 
select * from test where age=22 for update
> Affected rows: 0
> 时间: 14.158s
 
 
select * from test where age=23 for update
> Affected rows: 0
> 时间: 0.001s
 
 
commit
> OK
> 时间: 0s

关于“mysql临键锁如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。


文章题目:mysql临键锁如何使用
网页网址:http://bjjierui.cn/article/gsspjj.html

其他资讯