1.元数据锁

 查看元数据锁
select object_type,object_scheme,object_name,lock_type,lock_duration from perfomance_scheme.metadata_locks;
 
2.意向锁

 线程A开启事务后在执行update更新语句时候,会给数据加上行锁,加上行锁以后,会对整张表加上意向锁。
线程B来给整张表加上表锁时,会先检查这张表的意向锁,通过意向锁来决定它能不能对这张表加锁成功,如果加的表锁和当前这张表的意向锁是兼容的,那么直接会给这张表加锁,如果当前要加的锁和这张表的意向锁不兼容,那此时线程B将会出于阻塞状态,一直阻塞到线程A将事务提交,行锁释放,意向锁释放之后,线程B将解除阻塞状态。
 
 
 线程1中:
#开启事务
begin;
select * from score where id = 1 lock in share mode;
 
线程2中查看表中的意向锁,和执行完sql语句加的行锁,此行锁为共享锁
select object_scheme,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks;
 
IS意向共享锁和表锁里面的读锁是兼容的,和表锁里面的写锁是互斥的。
 
 
 意向锁存在它的作用就是,在innodb引擎当中加的行锁和表锁之间的冲突问题。


![Docker 入门终极指南[详细]](https://img-blog.csdnimg.cn/img_convert/33f8a04fab9bfef0b493b28368a42740.png)











![[语义分割] DeepLab v2(膨胀卷积、空洞卷积、多尺度信息融合、MSc、ASPP、空洞空间金字塔池化、Step学习率策略、Poly学习率策略)](https://img-blog.csdnimg.cn/526f8d16f5c344dabafa2cb105b7a905.png#pic_center)



