14.9 InnoDB Row Storage and Row Formats InnoDB 行存储和行格式:

14.9 InnoDB Row Storage and Row Formats  InnoDB 行存储和行格式:


14.9.1 Overview of InnoDB Row Storage
14.9.2 Specifying the Row Format for a Table
14.9.3 DYNAMIC and COMPRESSED Row Formats
14.9.4 COMPACT and REDUNDANT Row Formats



这个章节讨论 InnoDB 功能比如表压缩,长类型的列值的 off-page storage ,



大的index key 前缀(innodb_large_prefix)  是通过ROW_FORMAT ,CREATE TABLE statement.子句控制的


14.9.1 Overview of InnoDB Row Storage   InnoDB 行存储概述:

存储用于行和相关的列影响查询和DML的性能,

因为更多的行被塞入到一个单独的磁盘page,查询和index 查找可以变的更快,


更少的cache memory 是需要的在InnoDB buffer pool,


更少的I/O 是被写出更新的数据



数据在每个InnoDB 表是被分成pages,组成每个表的页是被安排到一个tree data 被称为 B-tree index.


表数据和secondary indexes  都使用这种类型的结构。


B-tree index  代表整个表被称为 clustered index,


它是根据主键列组织。

索引的数据结果节点包含所有列的值(对于clustered index) 


或者index列和主键列(对于secondary indexes).



可变长度列是一个例外对于这个规则。

列比如BLOB和VARCHAR 是太长了放到 B-tree page是存储在单独的分配的dick pages 称为overflow pages.



我们称这些列为 overflow页,


那些列的值是存储在 overflow pages的单链表里,


每个这样的列有它自己的一个或者多个 overflow pages的列表。

在有些情况下,所有或者一个long列的前缀是存储在 B-tree, 


为了避免浪费空间和消除读取单独页的需要。


下面的章节描述 如何配置InnoDB 表的row format来控制可变长度列值的存储。

Row format  配置也决定表compression feature 的可用性和 large index key prefix feature (innodb_large_prefix).

原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199696.html