当前位置:   article > 正文

MySQL表级锁之意向锁_mysql意向锁

mysql意向锁

意向锁

为了避免DML在执行时,加的行锁与表锁的冲突,在InnoDB中引入了意向锁,使得表锁不用检查每行数据是否加锁,使用意向锁来减少表锁的检查。

  • 共享锁(S):也称为读锁。如果事务T对数据对象A加上S锁,则可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁。这保证了其他事务可以读取A,但在事务T释放对象A上的S锁之前不能对A做任何修改。
  • 排他锁(X) :也称为写锁。事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁,这保证了其他事务在T释放A上的锁之前不能在读取和修改A。
  • 意向共享锁(IS):事务有意向对表中的某些行加共享锁(S锁)
  • 意向排他锁(IX):事务有意向对表中的某些行加排他锁(X锁)

意向共享锁(IS)
由语句select ... lock in share mode添加 。与表锁共享锁(read)兼容,与表锁排他锁(write)互斥。

意向排他锁(IX)
insert、update、delete、select...for update添加 。与表锁共享锁(read)及排他锁(write)都互斥,意向锁之间不会互斥。

一旦事务提交了,意向共享锁、意向排他锁,都会自动释放。

可以通过以下SQ

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/685413
推荐阅读
相关标签
  

闽ICP备14008679号