[innodb存储引擎]读书笔记-锁
2017-04-07 18:00
267 查看
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操作,其会检查插入记录的下一条记录是否被锁定,若已被锁定,则不允许插入。
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操作,其会检查插入记录的下一条记录是否被锁定,若已被锁定,则不允许插入。
相关文章推荐
- MySQL技术内幕-InnoDB存储引擎-读书笔记(一)
- [innodb存储引擎]读书笔记-索引
- 读书笔记:MySQL InnoDB存储引擎关键特性
- MySQL技术内幕-InnoDB存储引擎-读书笔记(二)
- 《MySQL技术内幕——InnoDB存储引擎》读书笔记(二)——InnoDB存储引擎
- Innodb存储引擎 读书笔记
- InnoDB存储引擎redo log文件——《MySQL技术内幕InnoDB存储引擎》读书笔记
- 今天看innodb存储引擎,稍后复习时整理,包括innodb配置
- MySQL存储引擎之Myisam和Innodb总结性梳理
- InnoDB存储引擎
- mysql 开发基础系列10 存储引擎 InnoDB 介绍
- Mysql存储引擎MyISAM和InnoDB
- 浅谈MySQL存储引擎选择 InnoDB还是MyISAM
- MySQL存储引擎中的MyISAM和InnoDB区别详解
- MySQL 存储引擎 MyISAM 与 InnoDB 的对比
- MySQL存储引擎MyISAM与InnoDB的优劣
- Mysql 存储引擎中InnoDB与Myisam的主要区别
- mysql存储引擎Myisam、Innodb、Memery(Heap)、Mrg_myisam、Blackhole、Csv、Archive
- mysql 存储引擎 innodb 学习复习 之 事务(未完明天继续)
- mysql的存储引擎:MyISAM和InnoDB的区别