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事务索引隔离级别 -> 正文阅读

[大数据]MySQL事务索引隔离级别

数据库问题:IO问题(减少IO量、减少IO次数)
一、为什么不用hash表?

在这里插入图片描述

如果使用hash表进行存储的话,需要较好的hash算法,若算法不好的话会导致hash冲突和hash碰撞,导致数据散列不均匀;当需要进行范围查找的时候需要挨个遍历,效率很低。

其中,innodb 存储引擎支持自适应hash

二、二叉树、二叉搜索树BST、二叉查找树AVL、红黑树

在这里插入图片描述

插入更多的数据的时候,导致IO次数加大,影响效率

三、为什么不用B树而用B+树?
1、B树

在这里插入图片描述

B树:指针+索引+数据

举例说明: 查找索引为27的数据

首先,比较16和32得知27位于它们之间,因此由p2指针指向下一个磁盘块,再对25和31比较进入到下一个磁盘块,最后得到27的数据。

存储记录数: 假设一个磁盘块只有48kb,数据1kb,那么三层B树记录数最大为(48/3)(48/3)(48/3)较少

缺点:存储的数据量较少;若需要插入更多的数据,导致树的高度变大,增大查询时磁盘的IO次数,进而影响查询性能

2、B+树

在这里插入图片描述

B+树:数据只存在叶子节点中,非叶子节点存放指针和索引

存储的数据量大,降低了树的高度,数据检索快

三、聚簇索引和非聚簇索引

在这里插入图片描述

聚簇索引: 数据和索引绑定在一起存储

非聚簇索引: 数据和索引没有存储在一起

四、回表、索引覆盖、最左匹配、索引下推

在这里插入图片描述

五、MVCC

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

插入name=zhangsan,age=11,gender=man的数据,隐藏字段事务id=1,主键假设=1,因为没有回滚操作所以指针为null

在这里插入图片描述

undolog: 记录回滚日志,每一次数据修改都会在undolog中记录,并把指针移向最新的一次历史记录


在这里插入图片描述

下面4个事务分别开启,事务4先做修改操作并提交,然后事务2进行快照读取,可以查看到最新记录

在这里插入图片描述


事务0为最早的事务开启插入提交操作,事务1234分别开启事务,事务2先进行快照读,然后事务4进行修改操作并提交,接着事务2再进行快照读

RR隔离级别不能查看到最新的记录,因为RR只有在进行第一次快照读的时候才会生成readview,之后的读操作都会用第一次生成的readview

RC隔离级别可以查看到最新的修改数据,因为RC每次进行快照读的时候都会生成新的readview;

在这里插入图片描述

六、ACID

在这里插入图片描述

原子性: 要么都执行要么都不执行,记录会写在undolog中,方便事务执行失败进行数据回滚

隔离性: MVCC多版本并发控制

持久性: redolog二阶段提交,防止宕机数据丢失

一致性: 上面的操作就是为了保证数据的一致性

在这里插入图片描述

若数据在写binlog之前发生断电,那么事务处在prepare阶段,判断redo和binlog文件内容是否一致,不一致则表示没有写入成功。若一致,只是没有提交,那么只要commit即可

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:08:12  更:2022-03-06 13:10: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年11日历 -2024/11/24 10:49:36-

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