IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql innodb 存储引擎的特性—行锁剖析 -> 正文阅读

[大数据]mysql innodb 存储引擎的特性—行锁剖析

先放上一张思维导图,没办法很穷只能用免费版的模板,毕竟我还在每天吃土,没钱办会员。看懂这个图,其实对于 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

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:53:18  更:2022-07-03 10:54:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 4:08:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码