当前位置: 首页 > news >正文

海南百度推广总代理/北京百度推广优化公司

海南百度推广总代理,北京百度推广优化公司,wordpress返回旧版本,旅游网站建设分析 需求一、概述 首先,InnoDB是是一个事务安全的MySQL存储引擎,这是它与MyIsAM的最大区别,也已经成为了MySQL的默认存储引擎。InnoDB存储引擎的主要架构如下图,由许多的后台线程,内存池以及文件组成,这些内存块构…

一、概述

首先,InnoDB是是一个事务安全的MySQL存储引擎,这是它与MyIsAM的最大区别,也已经成为了MySQL的默认存储引擎。InnoDB存储引擎的主要架构如下图,由许多的后台线程,内存池以及文件组成,这些内存块构成了一个大的内存池

image.png

1.1内存结构

image.png

1.2内存池的主要工作

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

二、 后台线程

不同的后台线程负责不同的任务。

2.1 Master Thread

听名字就知道是核心后台线程,负责如下内容:

  • 缓冲池数据异步刷新到磁盘
  • 保证数据的一致性

2.2 IO Thread

InnoDB存储引擎中大量使用了AIO(Async IO)来处理写IO请求,IO Thread 的主要职责是:

  • 负责这些 IO请求的回调处理

2.3 Purge Thread

事务被提交后,其所使用的 undolog 可能不再需要,因此需要 PurgeThread来回收已经使用并分配的 undo 页。它做的也是清理工作。InnoDB支持多个Purge Thread,这样做的目的是为了进会步加快 undo 页的回收

2.4 Page Cleaner Thread

Page Cleaner Thread是在 InnoDB 1.2.x版本中引入的。其作用是将之前版本中脏页的刷新操作都放入到单独的线程中来完成。而其目的是为了减轻原 Master Thread的工作及对于用户查询线程的阻塞,进一步提高 InnoDB存储引擎的性能。

三、 内存

3.1 缓冲池

速度与磁盘速度之间的鸿沟,基于磁盘的数据库系统通常使用缓冲池技术来提高数据库的整体性能。缓冲池能为读取和写入带来性能上的极大提升。缓冲池的大小直接影响着数据库的整体性能。

3.1.1 读取时

在数据库中进行读取页的操作,首先将从磁盘读到的页存放在缓冲池中,这个过程称为将页"FIX"在缓冲池中。下一次再读相同的页时,首先判断该页是否在缓冲池中。若在缓冲池中,称该页在缓冲池中被命中,直接读取该页。否则,读取磁盘上的页。

3.1.2 写入时

对于数据库中页的修改操作,则首先修改在缓冲池中的页,然后再以一定的频率刷新到磁盘上。这里需要注意的是,页从缓冲池刷新回磁盘的操作并不是在每次页发生更新时触发,而是通过一种称为 Checkpoint 的机制刷新回磁盘

3.1.3 缓冲池缓存的数据页类型

索引页、数据页、undo 页、插入缓冲(insert buffer)、自适应哈希索引(adaptive hash index)、InnoDB存储的锁信息(lock info)、数据字典信息(data dictionary)等

3.1.4 缓冲池的管理

  1. LRU Lis
  2. Free List
  3. Flush List

3.2 重做日志缓冲

InnoDB存储引擎首先将重做日志信息先放入到这个缓冲区,然后按一定频率将其刷新到重做日志文件。重做日志缓冲一般不需要设置得很大,因为一般情况下每一秒钟会将重做日志缓冲刷新到日志文件,因此用户只需要保证每秒产生的事务量在这个缓冲大小之内即可
触发重做日志缓冲中的内容刷新到外部磁盘的重做日志文件的情况:

  1. Master Thread每一秒将重做日志缓冲刷新到重做日志文件
  2. 每个事务提交时会将重做日志缓冲刷新到重做日志文件
  3. 当重做日志缓冲池剩余空间小于 1/2 时,重做日志缓冲刷新到重做日志文件

3.3 额外的内存

对一些数据结构本身的内存进行分配时,需要从额外的内存池中进行申请,当该区域的内存不够时,会从缓冲池中进行申请

四 checkpoint技术

Checkpoint(检查点)技术的目的是解决以下几个问题:

  1. 缩短数据库的恢复时间
  2. 缓冲池不够用时,将脏页刷新到磁盘
  3. 重做日志不可用时,刷新脏页

在InnoDB存储引擎内部,有两种Checkpoint:

  1. Sharp Checkpoint
  2. Fuzzy Checkpoint

在InnoDB存储引擎中可能发生如下几种情况的Fuzzy Checkpoint:

  1. Master Thread Checkpoint
  2. FLUSH_LRU_LIST Checkpoint
  3. Async/Sync Flush Checkpoint
  4. Dirty Page too much Checkpoint

五、InnoDB关键特性

  1. 插入缓冲
  2. 两次写
  3. 自适应哈希索引
  4. 异步 IO
  5. 刷新邻接页

六、 总结

image.png

【参考】
【1】《MySQL技术内幕 InnoDB存储引擎 第2版》

http://www.lbrq.cn/news/966277.html

相关文章:

  • 如何做网站管理维护/代刷网站推广免费
  • 学校网站建设发展历程/西安百度公司地址介绍
  • 沈阳城市建设管理学校网站/策划品牌全案
  • 建立个人网站费用/网站很卡如何优化
  • 网址导航类网站如何做推广/关键词录入榜
  • 网站建设三剑客/十大搜索引擎网站
  • 国外免费网站建设/千万不要学网络营销
  • 销售网站设计/淘宝如何提升关键词排名
  • 网站建设 开发票/免费域名怎么注册
  • 日本vtuber在b站的钱/大二网页设计作业成品
  • 六安网站建设哪家靠谱/网站设计公司上海
  • 用邮箱地址做网站域名好吗/网络营销师证书需要多少钱
  • 广州网站建设联系电话/sem竞价托管多少钱
  • 昆明小程序定制/seo交流qq群
  • 做棋牌开发的网站/google seo怎么做
  • 建设部质监局信息查询官方网站/河南企业网站推广
  • 如何上传网站/沈阳网络营销推广的公司
  • 平湖市住房建设局网站/百度seo优化收费标准
  • 济南行知网站建设/别做网络推广员
  • 注册网站模板/抚州网络推广
  • 网站开发经济可行性分析怎么写/外链查询
  • wordpress自定义结构空白页/厦门关键词排名优化
  • android移动网站开发详解光盘下载/seo优化排名工具
  • 网页设计哪个培训机构好/正规seo排名多少钱
  • 专业手机网站建设推荐/淘宝热搜关键词排行榜
  • 高端网站设计服务商/谷歌搜索广告
  • 房地产设计网站/百度公司官网入口
  • 网站 制作/怎么注册自己公司的网址
  • lnmp wordpress 安装教程/seo咨询顾问
  • 开服网站建设/网站免费推广软件
  • web后端开发(javaweb第十天)
  • YAML 自动化用例中 GET vs POST 请求的参数写法差异
  • 从基础到进阶:MyBatis-Plus 分页查询封神指南
  • 微信小程序入门实例_____从零开始 开发一个每天记账的微信小程序
  • rk3588平台USB 3.0 -OAK深度相机适配方法
  • Vue单文件组件与脚手架工程化开发