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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> InnoDB存储引擎学习笔记(更新ing) -> 正文阅读

[大数据]InnoDB存储引擎学习笔记(更新ing)

InnoDB存储引擎

1.MySQL常用的几大存储引擎介绍

//通过该命令可查看当前mysql支持的存储引擎
show engines;

image-20211123205847414

1.InnoDB

InnoDB存储引擎支持事务,其设计目标主要面向在线事务处理(OLTP)的应用

特点

  1. 行锁
  2. 支持外键
  3. 非锁定读(默认读不会产生锁)

MySQL5.5.8开始,InnoDB是默认存储引擎

InnoDB通过使用MVCC(多版本并发控制)来获取高并发,并且实现了SQL标准的4种隔离级别,默认是Repeatable级别。同时使用一种叫next-key locking的策略来避免幻读。除此之外,InnoDB存储引擎还提供了插入缓冲(insert buffer)、二次写(double buffer)、自适应哈希索引(adaptive hash index)、预读(read ahead)等高性能和高可用的功能。

InnoDB采用了聚集(涉及B+树)的方式,因此每张表的主键都是按顺序存储的,没有显示的定义主键时,会为每一行生成一个6个字节的RowId作为主键

2.MyISAM

MyISAM不支持事务、表锁涉及,但支持全文索引

3.NDB

集群存储引擎,数据放在内存中(5.1版本开始,非索引数据可以放在磁盘上),主键查找极快

4.Memory

数据存放在内存中,非常适合存储临表、数据仓库的纬度表;默认使用的hash索引

5.Archive

只支持insert和select操作

2.InnoDB来了

1.这是InnoDB简单的架构图

image-20211123211121109

内存池:

  1. 维护所有的进程/线程需要访问的多个内部数据结构
  2. 缓存磁盘上的数据,加快访问速度。同时在对磁盘文件数据修改之前在这里缓存
  3. 重做日志(redo log)缓冲

后台线程:主要负责刷新内存池中的数据,保证缓冲池的缓存是最近的数据;将已修改的数据文件刷新到磁盘文件,发生异常时也能借此恢复到正常状态

2.详细介绍后台线程

InnoDB是多线程模型,因此后台有多个不同的后台线程,负责处理不同的任务:

1.Master Thread

核心后台线程,主要负责将缓冲池的数据异步刷新到磁盘(包括脏页的刷新、合并插入缓冲、undo页的回收),保证数据的一致性

2.IO Thread

InnoDB中大量使用AIO(Async IO,异步io)来处理写请求,这样可以极大提高数据库性能。

IO Thread就是负责这些AIO的回调处理

3.Purge Thread

事务被提交后,其所使用的undolog可能不再需要,因此Purge Thread 就是来回收已经使用并分配的undo页

4.Page Cleaner Thread

其作用是将之前版本中的脏页刷新操作都放入到单独的线程中来完成,减轻原Master Thread的工作及对用户查询线程的阻塞,进一步提高InnoDB的性能

3.InnoDB内存介绍

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

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