14.2.5.7 Physical Row Structure 物理数据结构:

InnoDB物理记录结构依赖行格式 在表创建的时候,  默认, InnoDB 使用Antelope 文件存储格式和它的压缩行格式。

冗余的格式是保留 和MySQL 老版本的兼容性。

当你启用 innodb_file_per_table设置,你也可以使用更新的Barracuda file format,

它的DYNAMIC 和COMPRESSED 行模式.

检查InnoDB 表的行格式,你可以使用SHOW TABLE STATUS,比如:

mysql> SHOW TABLE STATUS IN test1\G
*************************** 1. row ***************************
Name: t1
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 16384
Data_free: 0
Auto_increment: 1
Create_time: 2014-10-31 16:02:01
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment: 你可以检查row format 通过查询INFORMATION_SCHEMA.INNODB_SYS_TABLES. COMPACT row 格式降低了20% 的row storage space 代价是增加CPU使用对于一些操作。 如果你的工作负载是一个典型的受限于cache命中率和disk speed. COMPACT 格式是可能更快的, 如果 负载是受限于 CPU 速度,COMPACT 格式可能会更慢。 Rows 在InnoDB 表使用冗余的行格式有下面的特点: 1.每个index 记录包含一个6位的头, header 是用于连接连续的记录,也还row-level 锁定 2. 在clustered index 中的记录包含字段用于所有用户自定义的列,此外, 有一个6字节的事务ID 字段和7字节的指针字段。 3. 如果表上没有主键,每个clustered index record包含一个8字节的row ID 子弹 4.每个secondary index record 包含所有的主键列,定义为 clustered index key 而不是secondary index 5.一个记录包含一个指针到每个记录的字段,如果字段的总长度在一个记录里是小于128字节, 指针是一个字节,否则, 是2个字节。这些指针的数组被称为记录目录, 这些指针指向的区域称为数据部分 6. 内部的,InnoDB 存储固定长度的字符列 比如CHAR(10) 在一个固定长度的格式, InnoDB 不截取VARCHAE 列两侧的空格。 7.一个SQL NULL 值保留一个或者2个字节在record directory. 除此之外, 一个SQL NULL 值储备0个字节在记录的数据部分 如果存储在一个可变的列里。 在一个固定列,它保留固定列的长度在数据部分. 在InnoDB 表的记录使用COMPACT 行格式有下面的特点: 1. 每个index 记录包含一个5字节header ,header 是用于连接连续的记录,也是在行级锁定。 2.记录header的可变长度部分包含一个位向量来表明NULL列。 如果索引中的列数可以是NULL 是N, 位向量占据上限(N/8) 字符。(举个例子,如果在任何地方从9到15列 可以是NULL, 位向量使用2个字节) 列是NULL 不会占用space 。 3. 记录header 后面跟着非空列的数据内容 4.记录在clustered index 包含字段对于所用用户定义的列,此外,有一个6字节的事务ID字段和一个7字节的指针字段 5.如果表上没有主键定义,每个clustered index记录也包含一个6字节的row ID字段 6.每个secondary index record 也包含所有的主键列定义用于 clustered index key 而 不是secondary index. 如果那些主键列字段是可变长度,record header 对于每个secondary index 会有一个可变长度部分来记录它们的长度, 即使secondary index 是定义在一个固定长度列

14.2.5.7 Physical Row Structure 物理数据结构:的更多相关文章

  1. 14.8.3 Physical Row Structure of InnoDB Tables InnoDB 表的物理行结构

    14.8.3 Physical Row Structure of InnoDB Tables InnoDB 表的物理行结构 一个InnoDB 表的物理行结构取决于在创建表指定的行格式 默认, Inno ...

  2. 14.2.5.4 Physical Structure of an InnoDB Index InnoDB Index 的物理结构

    14.2.5.4 Physical Structure of an InnoDB Index InnoDB Index 的物理结构 所有的InnoDB indexes 是B-trees ,index ...

  3. 14.9.2 Specifying the Row Format for a Table 指定 表的行格式

    14.9.2 Specifying the Row Format for a Table 指定 表的行格式 mysql> SHOW TABLE STATUS\G; *************** ...

  4. HDU 5066 Harry And Physical Teacher(物理题)

    HDU 5066 Harry And Physical Teacher 思路:利用物理里面的动量守恒公式.因为保证小车质量远大于小球.所以能够把小车质量当成无穷大带进去,得到答案为2 * v0 - v ...

  5. 专题实验 Storage structure 物理存储

    物理存储结构主要是指: extent的分配, 以及datablock 存储相关, 置于tablespace, segment 都是逻辑结构. tablespace : 逻辑结构, 没有实际物理存储. ...

  6. UVa 11995:I Can Guess the Data Structure!(数据结构练习)

    I Can Guess the Data Structure! There is a bag-like data structure, supporting two operations: 1 x T ...

  7. MySQL 5.6 Reference Manual-14.2 InnoDB Concepts and Architecture

    14.2 InnoDB Concepts and Architecture 14.2.1 MySQL and the ACID Model 14.2.2 InnoDB Multi-Versioning ...

  8. Limits on Table Column Count and Row Size Databases and Tables Table Size 最大行数

    MySQL :: MySQL 8.0 Reference Manual :: C.10.4 Limits on Table Column Count and Row Size https://dev. ...

  9. The BLOB and TEXT Types

    官网参考:https://dev.mysql.com/doc/refman/5.7/en/blob.html 字符串类型对应的存储需求 Data Type Storage Required CHAR( ...

随机推荐

  1. SilkTest天龙八部系列5-类的属性

    SilkTest的面向对象机制让用户可以为类定义属性,用property语句实现.除此以外用户在类中还可以定义成员变量和不可变的setting属性.也就是是说Silktest类中可以有以下三种属性/变 ...

  2. 高性能IO模型浅析(彩图解释)good

    服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking IO):默认创建的s ...

  3. ajaxSubmit提交文件表单不执行success

    先描述一下我遇到的问题,系统里所有的表单都用ajaxSubmit来提交,成功回调success函数,普通表单都是没有问题的,但是有文件上传的表单就不行了,不会回调success,经验证会回调compl ...

  4. bin文件格式分析

    xip 的 bin 文件分析 一个bin 文件在存储上是按以下的结构存储的 组成:标记(7)+Image開始地址(1)+Image长度(1)            记录0地址+记录0长+记录0校验和+ ...

  5. Hadoop自定义Counter

    1.通过enum自定义Counter public static num LOG_PROCESSOR_COUNTER { BAD_RECORDS }; 2.在Mapper或者Reducer中操作Cou ...

  6. xml总结图--(来自传智播客视频资料)

  7. Socket开发时,Available为0,实际还有数据的问题

    这段时间处理Socket通讯,比如文件传输,通常代码如下: string filename = @"c:\abc.txt"; // 发送文件名字符串长度(测试代码,实际请传输字符串 ...

  8. poj 3778

    这就是个超级水题……!!!!写一写来纪念一下自己的错误…… 如果某个学生的的成绩是其他俩个或三个学生成绩的和则给予奖励 直接暴力,所以一开始直接用数组标记两个人或三个人的和,但是忽略了这种情况 20( ...

  9. 【Cocos2d-X开发学习笔记】第28期:游戏中音乐和音效的使用

    本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 UI在游戏中占有很重要的地位,但吸引玩家的除了这 ...

  10. FFMPEG H264/H265 编码延迟问题

    最新使用FFmpeg进行H264的编码时,发现视频编码有延迟,不是实时编码.进过一番研究发现,仅仅要在调用avcodec_open2函数 打开编码器时,设置AVDictionary參数就可以.关键代码 ...