MySQL数据库原理学习(三十九)
2023-02-19 12:23:39 时间
2). 分类
意向共享锁(IS): 由语句select ... lock in share mode添加 。与 表锁共享锁
(read)兼容,与表锁排他锁(write)互斥。
意向排他锁(IX): 由insert、update、delete、select...for update添加 。与表锁共享锁(read)及排他锁(write)都互斥,意向锁之间不会互斥。
一旦事务提交了,意向共享锁、意向排他锁,都会自动释放。
可以通过以下SQL,查看意向锁及行锁的加锁情况:
select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from
performance_schema.data_locks;
演示:
A. 意向共享锁与表读锁是兼容的
B. 意向排他锁与表读锁、写锁都是互斥的
5.4 行级锁
5.4.1 介绍
行级锁,每次操作锁住对应的行数据。锁定粒度最小,发生锁冲突的概率最低,并发度最高。应用在InnoDB存储引擎中。
InnoDB的数据是基于索引组织的,行锁是通过对索引上的索引项加锁来实现的,而不是对记录加的锁。对于行级锁,主要分为以下三类:
行锁(Record Lock):锁定单个行记录的锁,防止其他事务对此行进行update和delete。在RC、RR隔离级别下都支持。
间隙锁(Gap Lock):锁定索引记录间隙(不含该记录),确保索引记录间隙不变,防止其他事务在这个间隙进行insert,产生幻读。在RR隔离级别下都支持。
临键锁(Next-Key Lock):行锁和间隙锁组合,同时锁住数据,并锁住数据前面的间隙Gap。在RR隔离级别下支持。
相关文章
- Spring Session工作原理
- 一篇文章教你如何捕获前端错误
- Elasticsearch搜索调优权威指南 (2/3)
- Elasticsearch搜索调优权威指南 (1/3)
- 【大数据】SparkSql 连接查询中的谓词下推处理 (二)
- 【大数据】SparkSql 连接查询中的谓词下推处理 (一)
- 搜索和其他机器学习问题有什么不同?
- Searching with Deep Learning 深度学习的搜索应用
- 翻译 | The Principles of OOD 面向对象设计原则
- 400+节点的 Elasticsearch 集群运维
- 深入理解 MySQL ——锁、事务与并发控制
- 源码面前没有秘密,推荐 9 个带你阅读源码的开源项目
- 面试反杀「GitHub 热点速览 v.21.33」
- 实现工具自由,开源的桌面工具箱
- 面试官问:ZooKeeper 有几种节点类型?别再说 4 种啦!
- 横趟!面试中遇到的 ZooKeeper 问题
- 感谢 Vue.js 拯救我这个前端渣渣,让 PowerJob 有了管理后台界面
- mysql 根据出生日期计算年龄
- 自定义Oauth2.0返回值、及异常处理格式切面类
- 【译】我们对 2023 年核心页面指标的建议