一文弄懂 MySQL 中的隐式锁
隐式锁就像是口头协议,这种口头协议怎么落到实处起作用? >作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 > >爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 1. 什么是隐式锁? 前面我们介绍了行锁的共享锁、排他锁。按照精确模式,它们又都可以细分为普通记录锁、间隙锁、Next-Key 锁。 另外,还有一种专门用于插入记录场景的插入意向锁。 事务读写记录需要加这些行锁时,会发起加锁操作,申请新的行锁结构或者复用已有的行锁结构。 有了对应的行锁结构,我们就可以通过 performance_schema.data_locks 表查询到这些行锁的加锁情况了。InnoDB 内部把这种有对应锁结构的行锁称为显式锁。 隐式锁,是相对于显式锁而言的,它也是一种行锁,而且是普通记录锁的一种特殊存在形式。 顾名思义,既然是隐式锁,也就意味着我们查询不到它的加锁情况。 我们之所以查询不到,是因为隐式锁没有对应的行锁结构,它就像空气一样,神在,形不在。 我们知道空气是存在的,通常情况下,我们看不见,...

