Rechercher dans le manuel MySQL
15.9.1.6 Compression for OLTP Workloads
Traditionally, the InnoDB
compression feature was
recommended primarily for read-only or read-mostly
workloads, such as in a
data warehouse
configuration. The rise of SSD
storage devices, which are fast but relatively small and
expensive, makes compression attractive also for
OLTP
workloads: high-traffic, interactive
websites can reduce their storage requirements and their I/O
operations per second (IOPS) by
using compressed tables with applications that do frequent
INSERT
,
UPDATE
, and
DELETE
operations.
These configuration options let you adjust the way compression works for a particular MySQL instance, with an emphasis on performance and scalability for write-intensive operations:
innodb_compression_level
lets you turn the degree of compression up or down. A higher value lets you fit more data onto a storage device, at the expense of more CPU overhead during compression. A lower value lets you reduce CPU overhead when storage space is not critical, or you expect the data is not especially compressible.innodb_compression_failure_threshold_pct
specifies a cutoff point for compression failures during updates to a compressed table. When this threshold is passed, MySQL begins to leave additional free space within each new compressed page, dynamically adjusting the amount of free space up to the percentage of page size specified byinnodb_compression_pad_pct_max
innodb_compression_pad_pct_max
lets you adjust the maximum amount of space reserved within each page to record changes to compressed rows, without needing to compress the entire page again. The higher the value, the more changes can be recorded without recompressing the page. MySQL uses a variable amount of free space for the pages within each compressed table, only when a designated percentage of compression operations “fail” at runtime, requiring an expensive operation to split the compressed page.innodb_log_compressed_pages
lets you disable writing of images of re-compressed pages to the redo log. Re-compression may occur when changes are made to compressed data. This option is enabled by default to prevent corruption that could occur if a different version of thezlib
compression algorithm is used during recovery. If you are certain that thezlib
version will not change, disableinnodb_log_compressed_pages
to reduce redo log generation for workloads that modify compressed data.
Because working with compressed data sometimes involves keeping
both compressed and uncompressed versions of a page in memory at
the same time, when using compression with an OLTP-style
workload, be prepared to increase the value of the
innodb_buffer_pool_size
configuration option.
Document created the 26/06/2006, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/mysql-rf-innodb-performance-compression-oltp.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.