InnoDB Row Formats •Before downgrading to an earlier version of MySQL that does not support page compression, uncompress the tables that use the page compression feature. To uncompress a table, run  ALTER TABLE ... COMPRESSION=None  and  OPTIMIZE TABLE . •Page-compressed tablespaces can be copied between Linux and Windows servers if the compression algorithm that was used is available on both servers. •Preserving page compression when moving a page-compressed tablespace file from one host to another requires a utility that preserves sparse files. •Better page compression may be achieved on Fusion-io hardware with NVMFS than on other platforms, as NVMFS is designed to take advantage of punch hole functionality. •Using the page compression feature with a large  InnoDB  page size and relatively small file system block size could result in write amplification. For example, a maximum  InnoDB  page size of 64KB with a 4KB file system block size may improve compression but may also increase demand on the buffer pool, leading to increased I/O and potential write amplification. 15.10 InnoDB Row Formats The row format of a table determines how its rows are physically stored, which in turn can affect the performance of queries and DML operations. As more rows fit into a single disk page, queries and index lookups can work faster, less cache memory is required in the buffer pool, and less I/O is required to write out updated values. The data in each table is divided into pages. The pages that 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 a clustered index data structure contain the values of all columns in the row. The nodes of a secondary index structure contain the values of index columns and primary key columns. Variable-length columns are an exception to the rule that column values are stored in B-tree index nodes. Variable-length columns that are too long to fit on a B-tree page are stored on separately allocated disk pages called overflow pages. Such columns are referred to as off-page columns. The values of off-page columns are stored in singly-linked lists of overflow pages, with each such column having its own list of one or more overflow pages. Depending on column length, all or a prefix of variable-length column values are stored in the B-tree to avoid wasting storage and having to read a separate page. The  InnoDB  storage engine supports four row formats:  REDUNDANT ,  COMPACT ,  DYNAMIC , and COMPRESSED . Table 15.15 InnoDB Row Format Overview Row Format Compact Storage Characteristics Enhanced Variable- Length Column Storage Large Index Key Prefix Support Compression Support Supported Tablespace Types REDUNDANT No No No No system, file-per- table, general COMPACT Yes No No No system, file-per- table, general DYNAMIC Yes Yes Yes No system, file-per- table, general 3165