当前位置:网站首页>不同的操作加不同的锁详解
不同的操作加不同的锁详解
2022-08-01 19:57:00 【努力学习的狗】
- 事务利用MVCC进行的读取操作称为一致性读(或者快照读)。所有普通的SELECT语句在RC(读已提交),RR(可重复读)隔离级别下都算是快照读,一致性读不会对表中的任何记录进行加锁操作,其他事务可以自由地对表中的记录进行改动
select * from table_name
select * from table_name t1 Inner Join table_name_name t2 on t2.id = t1.id- 共享锁的锁定读,如果当前事务执行了锁定读,那么就会加上S锁(共享),其它事务可以继续获得这些记录的S锁,但是不能获取到这些记录的X锁,也不能直接改动这些记录。如果其它事务想要获取到对应的X锁,那么就会被阻塞,等到当前事务的S锁释放
select * from table_name LOCK IN SHARE MODE- 独占锁的锁定读,如果执行了该语句,那么会就给记录加上X锁,其它事务不可以获得这些记录的S锁,也不能获取到这些记录的X锁,不允许直接改动这些记录。如果其它事务想要获取到对应的X锁或者,那么就会被阻塞,等到当前事务提交后将对应的记录X锁释放为止。
SELECT * FROM UPDATE - DELETE操作:对一条记录执行DELETE操作的过程其实是先在B+树中定位到这条记录的位置,然后获取到这条记录的X锁,然后执行DELETE Mark操作(可以简单理解为获取X锁的锁定读)
- UPDATE操作: 在对一条记录进行UPDATE操作时分为3中情况
- 如果未修改该记录的键值并且被更新的列所占用的存储空间在修改前后未发生变化,则先在B+树中定位到这条记录的位置,然后再获取记录的X锁,最后在原记录的位置进行修改操作。(先定位待修改记录在B+树中的位置,然后再获取记录的X锁的过程,可以看成是一个获取X锁的锁定读)
- 如果未修改该记录的键值并且至少有一个被更新的列占用的存储空间在修改前后发生变化,则先在B+树中定位到这条记录的位置,然后获取记录的X锁,之后将该记录彻底删除掉(把记录彻底移入垃圾链表),最后再插入一条新记录。(先定位到待修改记录再B+树中的位置 ,然后再获取记录的X锁的过程。可以看成一个获取X锁的锁定读,与被彻底删除的记录的关联记录的锁也会被转移到这条新插入的记录上来)
- 如果修改了该记录的键值,则相当于在原记录上执行DELETE操作之后再来一次INSERT操作,加锁操作就需要按照DELETE和INSETR的规则进行
- INSERT操作: 一般情况下,新插入的一条记录受隐式锁保护,不需要再内存中为其生成对应的锁结构。
边栏推荐
- 密码学的基础:X.690和对应的BER CER DER编码
- 分享一个适用于MCU项目的代码框架
- 数据库系统原理与应用教程(071)—— MySQL 练习题:操作题 110-120(十五):综合练习
- 把 Oracle 数据库从 RAC 集群迁移到单机环境
- Heavy cover special | intercept 99% malicious traffic, reveal WAF offensive and defensive drills best practices
- 二维、三维、四维矩阵每个维度含义解释
- Pytorch模型训练实用教程学习笔记:二、模型的构建
- 安装win32gui失败,解决问题
- Compose实战-实现一个带下拉加载更多功能的LazyColumn
- 漏刻有时文档系统之XE培训系统二次开发配置手册
猜你喜欢
随机推荐
30-day question brushing plan (5)
使用常见问题解答软件的好处有哪些?
【kali-信息收集】(1.6)服务的指纹识别:Nmap、Amap
有序双向链表的实现。
Compose实战-实现一个带下拉加载更多功能的LazyColumn
58: Chapter 5: Develop admin management services: 11: Develop [admin face login, interface]; (not measured) (using Ali AI face recognition) (demonstrated, using RestTemplate to implement interface cal
What are the application advantages of SaaS management system?How to efficiently improve the digital and intelligent development level of food manufacturing industry?
有点奇怪!访问目的网址,主机能容器却不行
【无标题】
卷积神经网络(CNN)mnist数字识别-Tensorflow
分享一个适用于MCU项目的代码框架
57: Chapter 5: Develop admin management services: 10: Develop [get files from MongoDB's GridFS, interface]; (from GridFS, get the SOP of files) (Do not use MongoDB's service, you can exclude its autom
How PROE/Croe edits a completed sketch and brings it back to sketching state
【多任务优化】DWA、DTP、Gradnorm(CVPR 2019、ECCV 2018、 ICML 2018)
An implementation of an ordered doubly linked list.
专利检索常用的网站有哪些?
大神经验:软件测试的自我发展规划
30天刷题计划(五)
easyUI中datagrid中的formatter里面向后台发送请求获取数据
多线程之生产者与消费者









