前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于 InnoDB 存储引擎的一些总结!

关于 InnoDB 存储引擎的一些总结!

作者头像
业余草
发布2020-02-14 15:30:56
5000
发布2020-02-14 15:30:56
举报
文章被收录于专栏:业余草

先说 3 件事吧!

  1. 春节放假期间公众号不发文。提前祝大家新年快乐!
  2. 公众号后面可能会改名,有好的名字,可以留言推荐!
  3. 最近喜获信息系统高级工程师的证书!谢谢朋友圈几百个粉丝的祝福,这个比 PMP 难考,一年可以考两次。我是死看书,没啥诀窍。没毕业也可以考,有没有用,看公司,看个人!

时间过的很快,一眨眼一年时间就过去了。过去一年里,我也和群里的不少朋友一起成长,互相学习到不少东西!下面总结一些,我们经常在群里讨论的一些关于 MySQL 的知识点。

1、InnoDB 中每一页的大小默认为 16kb,但是其也支持压缩页的功能,即将原本 16kb 的页压缩为 1kb、2kb、4kb 和 8kb。当需要从缓存池中申请 4kb 大小的页时,MySQL 的申请步骤如下:

  • 检查 4kb 的 unzip_LRU 列表,检查是否有可用的空闲页;
  • 若有,则直接使用;
  • 否则,检查 8kb 的 unzip_LRU 列表;
  • 若能够得到空闲页,则分解为 2 个 4kb 的页,并且存放到 4kb 的 unzip_LRU 列表;
  • 若不能得到空闲页,就从 LRU 列表中申请一个 16kb 的页,将其分解为 1个 8kb 和 2 个 4kb 的页,并且存放到对应的 unzip_LRU 列表中

2、当 LRU 列表中的页被修改之后,其数据就和磁盘上的数据产生了不一致,这种页被称为脏页,此时数据库会根据 checkpoint 机制将脏页刷新到磁盘中,脏页不仅存在于 LRU 列表中,也存在于 FLUSH 列表中,FLUSH 列表中的数据是专门用来管理将数据刷新到磁盘中的。

3、在下列三种情况下重做日志会将重做日志缓冲中的内容刷新到重做日志文件中:

  • master thread 每一秒将重做日志缓冲刷新到重做日志文件;
  • 每个事务提交时会将重做日志缓冲刷新到重做日志文件;
  • 当重做日志缓冲池剩余空间小于1/2时,重做日志缓冲刷新到重做日志文件。

4、为了避免数据丢失的问题,事务数据库都采用了 write ahead log 机制,也就是当事务提交时,存储引擎先将数据写入到重做日志中,然后再修改页中的数据,当数据库发生宕机时,可以通过重做日志来恢复数据。

5、为了协调 CPU 的处理速度与磁盘的读写速度之间的不匹配问题,MySQL 采用了缓冲池来解决这个问题,当发生数据读写时,其都是先将数据写入到缓冲池中,然后通过 checkpoint 技术将数据写入到磁盘中。

6、checkpoint 技术所解决的问题:

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

7、公众号里之前也总结了不少关于 MySQL 的面试题和知识点。如:

搜了一下,大概有 50 多篇原创 MySQL 文章,都可以在历史文章里搜索到。我依然推荐大家可以看看《高性能 MySQL》、丁奇大神的《MySQL实战45讲》。

另外我的小程序里也有一些 MySQL 相关的知识点,虽然很久没更新了!

由于今天临时有事,这篇文章更新的很晚,很抱歉!最后祝大家鼠年有——

“鼠”不尽的快乐!“鼠”不尽的收获!

“鼠”不尽的钞票!“鼠”不尽的笑容!

“鼠”不尽的幸福,“鼠”不尽的幸运!

“鼠”不尽的甜蜜,“鼠”不尽的活力!

2020,“鼠”你最胖!不是,“鼠”你最棒!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/01/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档