innodb锁机制
Posted 蚍蜉撼树谈何易
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了innodb锁机制相关的知识,希望对你有一定的参考价值。
innodb中的锁机制原理解析
1.共享锁
S锁,读锁,多个事务共享一把锁,都能访问到数据,只读,不可修改。A
在读,B可读,但是不可写。
select * from count where id = 1 lock on share mode;
2.排他锁
X锁,写锁,不能与其他锁并存。只有当获取排他锁的事务处理完后,其
他操作方可进行。updata 自动加排他锁 -语句后加for update
innodb行锁?锁的是什么?
行锁就是给索引项加锁 ,否则就是表锁。
3.意向共享锁
IS: 表示事务准备给表加共享锁
4.意向排他锁
IX: 在获取排他锁之前,表示给其准备加上排他锁
这两个主要是为了提升性能的。做一个检测,快速返回的
5.自增锁
事务就算没提交,然后退出的话,此时这个事务也会被丢弃掉。
6.临建锁
大于,范围的话,底层相邻叶子(解决幻读)节点间加的锁。左开右闭。
没有匹配上的话,此时退化为间隙锁
7.间隙锁
没有匹配记录的话,就是间隙锁,锁的区间范围,在这个范围之间。
8.记录锁
记录锁是 封锁记录,记录锁也叫行锁,
SELECT * FROM test
WHERE id
=1 FOR UPDATE;
它会在 id=1 的记录上加上记录锁,以阻止其他事务插入,更新,删除 id=1 这一行。
6、7、8均属于排他锁。
以上是关于innodb锁机制的主要内容,如果未能解决你的问题,请参考以下文章