美文网首页
行的格式

行的格式

作者: lsh的学习笔记 | 来源:发表于2020-05-04 18:08 被阅读0次

注意:这里只讨论InnoDB引擎。

1. 分类

按时间分为:

  • 旧格式:Redundant
  • 新格式:Compact

按文件类型分:

  1. 旧文件格式:Antelope
    a. Redundant;
    b. Compact;
  2. 新文件格式:Barracuda
    a. Compressed;
    b. Dynamic;

2. Compact

4-2

变长字段长度列表

一个列表:记录非null变长字段长度。列表的顺序是跟列的顺序相反。
比如:a(32),b(64),c(16),d(128) 4个varchar字段存储顺序为d,c,b,a。

因为varchar类型的最大长度限制为65535,所以记录长度:

  1. 若列的长度小于255字节,用1字节表示;
  2. 若大于255字节,用2字节表示。

NULL标志位

  1. 和列相反的顺序。
  2. 不管是char类型还是varchar类型,在Compact格式下null值都不占用任何存储空间。

举例:

  1. a,b,c,d,e,f,g,h 共8个列,其中f,g 为null,
  2. 那么存储的值即为 0000,0110,即 06。

记录头信息

固定占用5字节(40位)。

Compact记录头信息

列数据

  1. 隐藏列:事务ID列回滚指针列rowid列(没有定义主键时才有)
  2. NULL不占此部分任何空间,只占用上面的NULL标志位。
  3. 固定长度char类型字段如果没用完,会用0x20填充。

3. 行溢出数据

  1. varchar(N)中的N指的是:字符长度。文档中说的单位是字节。
  2. 一行中所有列的长度总和不能超过65535
  3. 保证每页至少存2行(否则失去了B+Tree的意义,变成链表了)。
  4. 每页16KB=16384字节,如溢出,数据存 Uncompress BLOB页。
  5. 如果varchar长度等于8098,存2行,就不会溢出到BLOB页。

Antelope

4-4

Barracuda

4-5

相关文章

  • 行的格式

    注意:这里只讨论InnoDB引擎。 1. 分类 按时间分为: 旧格式:Redundant 新格式:Compact ...

  • Hive文件存储格式

    文件存储格式 Hive支持的存储数据的格式主要有:TEXTFILE(行存储)、SEQUENCEFILE(行存储)、...

  • 2019-04-17InnoDB记录存储结构

    4种不同类型的行格式,分别是Compact、Redundant、Dynamic和Compressed行格式 1 c...

  • 怎样运行-1-行格式

    InnoDB行格式 InnoDB 存储引擎设计了4种不同类型的行格式,分别是 Compact Redundant ...

  • PAML学习手册(3)

    3.数据格式 序列数据格式: PHYLIP格式 有限的支持NEXUS格式 PHYLIP格式详解: 第一行包含物种数...

  • 生信100-1-FASTQ与FASTA

    1.1 掌握FASTQ格式 格式有什么特点? 第1行什么开头,主要内容都有哪些? 第2行是什么? 第3行是什么? ...

  • MySQL -- 行格式

    前言 最近在学MySQL,决定记录一下,能写多少写多少,不定时更新,加油。 正文 分几个部分来吧,大致如下: 字符...

  • Docker初体验,关于Dockerfile那点事

    一、Dockerfile的格式 Dockerfile的格式如下: # Comment 以“#”开头的行为注释行。跨...

  • 面试官问我MySQL的行格式是怎样的

    行格式(row format)决定了我们插入的一行数据,是如何存储在数据库中的,MySQL有4种行格式,分别是RE...

  • vcard书目录

    vcard格式简介 VCard 数据格式的标识符 – VCARD vCard数据格式行: 类型 [;参数]:值 v...

网友评论

      本文标题:行的格式

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