美文网首页
2019-11-16

2019-11-16

作者: 飞向云端_0700 | 来源:发表于2019-11-16 22:51 被阅读0次

    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和一个回滚指针,紧跟着才是用户自定义的列信息。

    相关文章

      网友评论

          本文标题:2019-11-16

          本文链接:https://www.haomeiwen.com/subject/wefuictx.html