There are two sections for rows in the page format for InnoDB
compressed tables. The compressed section has one or more rows
and must be decompressed to access individual rows. The modification log has uncompressed rows and
rows can be accessed without decompressing. The modification log
is used to avoid decompressing and then possibly recompressing
the compressed section on every row change. The buffer pool also
has separate uncompressed copies of some pages so that every row
read does not require a page decompression.
I want to understand when a page must be decompressed or
recompressed. This is definitely an incomplete list.
- A page is decompressed when a row is read and the uncompressed version of the page is not in the buffer pool.
- I think a row can be deleted from the compressed section …