[innodb存储引擎]读书笔记-锁

来源:互联网 发布:linux安装zip解压软件 编辑:程序博客网 时间:2024/05/29 13:08

1、行级锁并不会增加开销,只有当实现本身会增加开销时,行级锁才会增加开销,innodb不需要锁升级,一个锁和多个锁的开销是一样的。

2、innodb的意向锁是表级别的锁。

3、innodb_trx:记录的是当前运行的innodb事务。

     innodb_locks:记录的是当前发生的锁信息。

     innodb_lock_waits:记录的是锁等待的信息。

4、mvcc在RR隔离级别下读的是第一条数据,实现可重复读,在RC级别下则读的是最新的数据,所以会出现不可重复读。

5、innodb_autoinc_lock_mode三种配置下的区分

     0:使用传统的auto-inc  locking

     1:使用mutex互斥量和auto-inc  locking,缺点是有可能产生空洞,类似这种语句INSERT INTO t1 (c1,c2) VALUES (1,'a'), (NULL,'b'), (5,'c'), (NULL,'d');

     2:完全使用mutex,适合高并发,但只推荐在从库row模式下使用,不然容易产生主从数据不一致。

6、一致性锁定读

     select for update X锁

     local in share mode S锁

7、record lock锁定记录、gap lock间隙锁、nextkey lock记录锁+间隙锁,当索引是唯一索引的时候,next_key锁会降级到记录锁。

8、发现死锁后,innodb会马上回滚一个事务。

9、在innodb中,对于insert操作,其会检查插入记录的下一条记录是否被锁定,若已被锁定,则不允许插入。



0 0