当前位置:网站首页>mysql innodb 存储引擎的特性—行锁剖析
mysql innodb 存储引擎的特性—行锁剖析
2022-07-03 15:05:00 【小姐姐修灯泡吗】
先放上一张思维导图,没办法很穷只能用免费版的模板,毕竟我还在每天吃土,没钱办会员。看懂这个图,其实对于 innodb 存储引擎的特性你已经掌握了。
一、mysql的常用存储引擎
myisam:不支持事务,表锁。数据文件和索引文件分开,文件可压缩
innnodb:支持事务,行锁(可升级为表锁),支持主外键等。
今天主要讨论innodb的存储引擎,其他不多做补充。
二、事物的隔离级别
先在网上随意找个图,说下结论,在mysql的 innodb搜索引擎下,默认的RR可重复读级别下,是可以解决幻读的。图中并不准确,已标出
图中已有各个情况下的解释,这里我简单明了的快速掠过
脏读: 事务A读取了事务B未提交的数据 A读 B update未提交
不可重复读:事务A读取2次,2次数据不一致 A读2次,B update已提交
幻读 :A 范围查询读了2次,B insert后 (临界锁: 左开右闭可以解决,可以对当前的范围查找加上写锁,将导致不能插入数据,也就不会两次
范围查找结果集不一致)
三、基于隔离级别的思考
普通场景,并发或者业务要求不高:我们的查询语句基本都是快照度MVCC
该并发场景下,要保证隔离性,那就只能加锁了,利用锁的互斥性控制,LBCC当前读。
1.利用锁 lbcc当前读
insert
delect
update
// 行锁分类
select 。。。。。for update 写锁
select 。。。。。lock in share mode 读锁
2.快照 MVCC
普通的select语句都是快照都是
四、innodb下锁是怎么实现的呢,为什么临界锁可以解决幻读呢?
1.innnodb时默认在给索引上加上行锁,如果查询的条件不是索引,对不起将升级为表锁
2. 行锁的具体实现和分类 :
记录锁:
1.当sql按找等值匹配方式对索引进行数据的检索
2.命中数据
间隙锁:左开右开
1.当sql按找等值匹配方式对索引进行数据的检索
2.数据不命中时
临界锁: 左开右闭
1.当SQL执行按找范围查找对索引进行数据检索时
2.且有数据命中时
关于图的附加说明到此为止,如果有疑问或不同的意见欢迎提出学习。
至此讲的是事物的隔离级别中引申的锁机制
但是还是想分享下事物的传播行为,特别是一个很常见的场景,同一个类中,事务方法A调用非事务方法B,事务是生效的,且无论是A还是B方法发生异常都会回滚事务。
有时间写代码验证下,这里先贴一个作者写的结论。可以转载查看https://blog.csdn.net/qq_39355504/article/details/109893065
边栏推荐
- Pytoch deep learning and target detection practice notes
- Byte practice plane longitude 2
- 链表有环,快慢指针走3步可以吗
- B2020 分糖果
- 4-24--4-28
- [opengl] face pinching system
- Using TCL (tool command language) to manage Tornado (for VxWorks) can start the project
- App global exception capture
- Search in the two-dimensional array of leetcode sword offer (10)
- [ue4] cascading shadow CSM
猜你喜欢

解决pushgateway数据多次推送会覆盖的问题

QT program font becomes larger on computers with different resolutions, overflowing controls
![[graphics] adaptive shadow map](/img/93/a6a3c7716331368c90c2c86da11f55.jpg)
[graphics] adaptive shadow map

Pytorch深度学习和目标检测实战笔记
![[graphics] real shading in Unreal Engine 4](/img/8d/53775c7570c5578f4fe985592bb305.jpg)
[graphics] real shading in Unreal Engine 4

The latest M1 dedicated Au update Adobe audit CC 2021 Chinese direct installation version has solved the problems of M1 installation without flash back!

Finally, someone explained the financial risk management clearly

Incluxdb2 buckets create database

Qt development - scrolling digital selector commonly used in embedded system

远程服务器后台挂起 nohup
随机推荐
【Transform】【实践】使用Pytorch的torch.nn.MultiheadAttention来实现self-attention
Global and Chinese markets for infrared solutions (for industrial, civil, national defense and security applications) 2022-2028: Research Report on technology, participants, trends, market size and sh
牛客 BM83 字符串變形(大小寫轉換,字符串反轉,字符串替換)
Center and drag linked global and Chinese markets 2022-2028: Research Report on technology, participants, trends, market size and share
SQL server安装位置改不了
Global and Chinese market of air cargo logistics 2022-2028: Research Report on technology, participants, trends, market size and share
4-33--4-35
Troubleshooting method of CPU surge
远程服务器后台挂起 nohup
[ue4] HISM large scale vegetation rendering solution
Several sentences extracted from the book "leather bag"
C language dup2 function
Centos7 deployment sentry redis (with architecture diagram, clear and easy to understand)
[pytorch learning notes] datasets and dataloaders
Open under vs2019 UI file QT designer flash back problem
链表有环,快慢指针走3步可以吗
[graphics] real shading in Unreal Engine 4
App全局异常捕获
NOI OPENJUDGE 1.5(23)
Global and Chinese market of marketing automation 2022-2028: Research Report on technology, participants, trends, market size and share