2019-11-16

2019-11-16  本文已影响0人  飞向云端_0700

MySQL记录存储格式

引言

        我们每天都在和MySQL数据库打交道,例如新建一个数据库testDataBaseA,在数据库A中新建一张表testTableB,紧接着,一行一行的数据被插入到testTableB表中,那么问题来了,这些数据是以何种形式存储在数据库中呢?带着这个疑问,我们开始本文的旅程。


Compact行格式

        Compact行格式是InnoDB存储引擎的常用行格式。行格式是真实的记录信息在数据库中存储的样式,Compact行格式用四部分信息表示一条完整的数据记录:

1.变长字段

        变长字段是指varchar这些可以指定存储范围的属性,例如name varchar(30),name这个列存储的字节不确定,所以称之为变长字段,对于变长字段,Compact行格式有专门的变长字段来记录。如果新建的表中没有变长字段,则行格式中这部分不存在。

2.NULL值列

        对于列的值允许为空的情况,行格式统一用NULL值列来管理这些列。

3.记录头信息

        记录头信息中记录了记录是否被删除;该记录拥有的记录数;指向下一条记录的指针等。

4.真实列信息

        真实列信息顾名思义就是用户自定义的列(实际在业务中使用的字段)。但是在每条记录的前面会有MySQL给我们生成的三个字段,如果我们没有指定主键,MySQL会为我们生成一个隐藏的DB_ROW_ID,MySQL会为每一行生成一个事物ID和一个回滚指针,紧跟着才是用户自定义的列信息。

上一篇下一篇

猜你喜欢

热点阅读