前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Innodb数据页简介

Innodb数据页简介

作者头像
AsiaYe
发布2019-11-06 16:57:51
5090
发布2019-11-06 16:57:51
举报
文章被收录于专栏:DBA随笔DBA随笔
Innodb数据页简介
Innodb存储引擎想必大家都不陌生,它是MySQL中最常用的存储引擎,也是目前MySQL的默认存储引擎,今天主要说说Innodb存储引擎的数据存储及处理方法。

Innodb存储引擎在读取一条数据的时候,是将数据记录从磁盘中取出来,然后在内存中进行处理的,当我们写入一条数据时,是将内存中的数据进行修改,然后再刷新到磁盘上,简称"数据落盘"。用一张图来表示就是:

这里需要注意的是,磁盘和内存之间交互的基本单位,我们称之为"数据页",这个概念很重要,在innodb中,这个页的大小,一般为16KB。

在Innodb中,页的内容不仅仅只有数据,页的类型大体包含存放数据的页,存放表空间头部信息的页,存放插入缓冲的页,以及存放undo日志的页等等,有兴趣的话,可以私下将他们全部搞清楚。

现在我们说说这16KB的页都包含哪些部分,从大的方面说,一共包含如下几个部分:

其中:

File Header包含的是页的通用信息,包括checksum(校验和)值、表空间中的偏移量、当前页的相邻页地址等等,它包含了8个部分,一共占用了38个字节;

Page Header包含的是数据页的一些状态信息,由14个部分组成,一共占用56个字节,

Infimum和Supermum是最大记录和最小记录,它们是数据也中的虚拟的行记录,用来限定数据页中记录的边界,这两个值在页创建的时候被建立,并且在任何情况下不会删除。

Record存储的是实际的数据

Free Space是数据页中空余的空间

Page Dic是指页中某些记录的相对位置

File Tailer检查一个页是否完整,它包含一个checksum值,会和File Header中的checksum值进行比较,检测这个页的完整性。

蓝色标示的部分是数据实际存储的位置,其他部分都是对这个数据页的一些记录信息。当我们在一个表里面插入数据的时候,实际上会从Free Space中查看是否有空余空间,如果有,那么从Free Space中分配一定的空间用于插入数据,如果没有,那么就去申请新的数据页。

关于页这7个部分的详细内容,后面会详细分析,今天的目的就是要有这样一个概念,就是数据是通过16KB大小的数据页来在磁盘和内存之间进行交互的,当我们插入数据的时候,会先从free space中查看,如果有空间,则插入该页,如果没有空间,则申请新的数据页。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档