天天看點

14.8.1 Overview of InnoDB Row Storage

14.8 innodb row storage and row formats innodb 行存儲和行格式

14.8.1 overview of innodb row storage

14.8.2 specifying the row format for a table

14.8.3 dynamic and compressed row formats

14.8.4 compact and redundant row formats

本章節讨論 innodb 特性 比如表壓縮, 長的可變長度列的值的頁面,

大的index key 字首(innodb_large_prefix) 是有create table 語句的row_format 控制。

它也讨論考慮選擇正确的格式,在mysql 釋出版本之間row formats 的相容。

rows行的存儲相關的列影響了查詢和dml操作的性能。随着越來越多的行放進一個單獨的磁盤頁面,

查詢和index 查找會變的更快,更少的cache memory 被需要在innodb buffer pool,

更少的i/o是需要寫出更新的值

資料在每個innodb 表被分成pages,pages 組成 每個表是被安排在一個tree data 結構叫做 一個b-tree index.

表資料和secondary indexes 都使用這種類型的結構。

b-tree index 代表整個表稱為 clustered index, 它是被組織根據primary key 列。

index 資料結構的節點包含所有列的值 (對于clustered index) 或者 index columes和主鍵列(對于secondary indexes).

可變長度列是這個規則的例外, 比如blob 和varchar 是太長了來填滿一個b-tree頁 是存儲在單獨的配置設定的磁盤頁

被稱為溢出列。 這些列的值是存儲在溢出頁的單連結清單中,

并且每個列有它自己的一個或多個溢出頁的清單。在某些情況下,所有或長列值的字首是存儲在b-tree裡,

為了避免浪費存儲空間和消除需要讀取一個單獨的頁。

下面的章節描述如何配置innodb 表的row format 來控制可變長度列值是如何存儲的。

row format 配置也決定了表壓縮特性和大index key 功能的可用性。

繼續閱讀