[聚合文章] Innodb中的锁

MySQL 2017-12-06 10 阅读

Innodb中的锁

共享锁和排它锁(Shared and Exclusive Locks)
  共享锁和排它锁是行级锁,有两种类型的行级锁
    共享锁(s lock)允许持有锁的事务对行进行读取操作
    排它锁(x lock)允许持有锁的事务对行进行更新和删除操作

  事务a在行r上拥有共享锁,则其他事务可以获得r的共享锁,无法获得r的排它锁,即可读不可写
  事务a在行r上拥有排它锁,则其他事务既不能获得共享锁,也不能获得排它锁,即不可读也不可写而必须等待当前事务完成

意向锁(Intention Locks)
  意向锁是表级锁,用来表示将会有哪种类型的行级锁即将被使用,有两种类型的意向锁
    意向共享锁(IS Locks):表明即将在表中的某一行上设置共享锁(s lock)
    意向排它锁(Ix Locks): 表明即将在表中的某一行上设置排它锁(x lock)

  一个事务如果要获得一个共享锁(s lock)必须首先获得一个意向共享锁(is lock),一个事务如果要获得一个排它锁(x lock)则必须先获得一个意向排它锁(ix lock)
各种锁级别的兼容性

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。