表级别锁

1.表锁

lock tables xx read.  线程只能读

lock tables xx write 其他线程无法读写 

 

2.MDL锁(元数据锁

 MDL 是为了对表执行 CRUD 操作时,防止其他线程对这个表结构做了变更 ,反之亦然

注意 MDL 是在事务提交后才会释放, 因此长事务可能导致 修改表操作 阻塞 

 

 3. 意向锁

   给记录加锁时,会给表级别加个特别的锁

  意向锁的目的是为了快速判断表里是否有记录被加锁 ,例如判断能否加表写锁

行锁

 

唯一等值查询

  1. 不存在,加 间隙锁 (意向锁)

  2. 存在,加行锁(意向锁)

唯一范围查询

  

 

 当前读 

 select ... lock in share mode 读锁

 select ... for update 写锁

 

select .. for update(lock in share mode)  / update / delete / insert 可以触发

record lock(记录锁)

 

posted on 2024-09-28 16:43  towboat  阅读(12)  评论(0编辑  收藏  举报