The storage for rows and associated columns affects performance for queries and DML operations. As
morę rows fit into a single disk page, queries and index lookups can work faster, less cache memory is
required in the InnoDB buffer pool, and less l/O is required to write out updated values for the numeric and short string columns.
The data in each InnoDB table is divided into pages. The pagesthat make up each table are arranged
in a tree data structure called a B-tree index. Table data and secondary indexes both use this type of
structure. The B-tree index that represents an entire table is known as the clustered index, which is
organized according to the primary key columns. The nodes of the index data structure contain the
values of all the columns in that row (for the clustered index) or the index columns and the primary key columns (for secondary indexes).
Variable-length columns are an exception to this rule. Columns such as
blob and yarchar that are
too long to fit on a B-tree page are stored on separately allocated disk pages called overflow pages.
We cali such columns off-page columns. The values of these columns are stored in singly-linked lists of
overflow pages, and each such column has its own list of one or morę overflow pages. In some cases,
all or a prefix of the long column value is stored in the B-tree, to avoid wasting storage and eliminating the need to read a separate page.