mysql的锁

2019-02-15  本文已影响0人  RainingMan

整理自 丁奇的MySQL实战45讲

  1. 全局锁
  1. 表级别锁
    1. 表锁
      • 语法: lock tables ... read/write;
        与FTWRL类似,可以用unlock tables 主动释放锁;也可以在客户端切断的时候自动释放。需要注意的是,lock tables语法除了会限制别的县城的读写外,也限定了本线程接下来的操作对象。
    2. 元数据锁(meta data lock,MDL)
      MDL 不需要显式使用,在访问一个表的时候会自动被加上。MDL的作用是,保证书写的正确性。
      MySQL5.5版本中引入了MDL,当对一个表做增删改查操作时,加MDL读锁;当需要对表结构变更操作时,加MDL写锁。
      • 读锁之间不互斥。因此,你可以有多个线程同时对一张表增删改查。
      • 读写锁之间、写锁之间是互斥的。用来保证变更表结构操作的安全性。因此,如果有两个线程要同时给一个表加字段。其中一个要等另外一个执行完才能开始执行。
  2. 行锁
上一篇 下一篇

猜你喜欢

热点阅读