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).