博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
14.2.5.7 Physical Row Structure 物理数据结构:
阅读量:4653 次
发布时间:2019-06-09

本文共 2079 字,大约阅读时间需要 6 分钟。

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: 16384Max_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 index5.一个记录包含一个指针到每个记录的字段,如果字段的总长度在一个记录里是小于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 是定义在一个固定长度列

转载于:https://www.cnblogs.com/zhaoyangjian724/p/6199887.html

你可能感兴趣的文章
5.1对终端进行读写
查看>>
面向对象编程里面的继承
查看>>
Handling duplicate form submission in Spring MVC
查看>>
Navicat 或者Java的JDBC通过SSH Tunnel连接MySQL数据库
查看>>
Android studio怎么去掉应用的标题栏
查看>>
[Cocos2D-X官方文档:解读CCArray类]
查看>>
大数据——大价值、大机遇、大变革(全彩)
查看>>
常用SQL查询语句
查看>>
SQLiteOpenHelper类
查看>>
补充[BNDSOJ]小p的数列
查看>>
读APUE分析散列表的使用
查看>>
jquery选中checkbox多选项并添加到文本框中
查看>>
CI框架后台添加左侧导航栏出现的一系列问题
查看>>
cocos2d-js 运行动画
查看>>
1.基础知识
查看>>
[NOI2018]你的名字
查看>>
关于mysql中select * for update锁表与Deadlock found when trying to get lock; try restarting transaction...
查看>>
[uva 1350]数位dp+二分
查看>>
445port入侵具体解释
查看>>
事务并发、事务隔离级别
查看>>