Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


14.7.6 OLTP ワークロードの圧縮

従来、InnoDB圧縮機能は、データウェアハウス構成などで、主に読み取り専用または読み取りが大半のワークロードに対して使用することが推奨されていました。高速だが、比較的小型で高価である SSD ストレージデバイスを増加すると、OLTP ワークロードでも圧縮が魅力的なものとなります。高トラフィックでインタラクティブな Web サイトでは、頻繁に INSERTUPDATE、および DELETE 操作を実行するアプリケーションで圧縮テーブルを使用することで、ストレージの要件および 1 秒あたりの I/O 操作 (IOPS) を削減できます。

MySQL 5.6 で導入された構成オプションを使用すると、書き込み負荷の高い操作のパフォーマンスおよび拡張性に重点を置いて、特定の MySQL インスタンスに合わせて圧縮の動作を調整できます。

  • innodb_compression_level を使用すると、圧縮の程度を上げたり、下げたりできます。値を大きくすると、ストレージデバイス上に収容できるデータ量が多くなりますが、圧縮時の CPU オーバーヘッドも多くなるという犠牲が伴います。値を小さくすると、ストレージ領域がクリティカルでない場合に、CPU のオーバーヘッドを削減できます。それ以外の場合は、データが特に圧縮可能でないと予測されます。

  • innodb_compression_failure_threshold_pct には、圧縮テーブルへの更新時に圧縮が失敗したときのカットオフポイントが指定されます。このしきい値を超えると、MySQL は、最大で innodb_compression_pad_pct_max で指定されたページサイズの割合まで空き領域の量を動的に調整することで、新しい各圧縮済みページ内に追加の空き領域を残し始めます。

  • innodb_compression_pad_pct_max を使用すると、ページ全体を再度圧縮する必要なしで、変更を圧縮済み行に記録するための各ページ内に予約されている領域の最大量を調整できます。値を大きくすると、ページを再度圧縮せずに記録できる変更の量が多くなります。MySQL では、実行時に指定した割合の圧縮操作に失敗したときにのみ、各圧縮テーブル内にあるページ用に可変量の空き領域が使用されますが、圧縮済みページを分割するために負荷の高い操作が必要となります。

圧縮済みデータを操作すると、圧縮済みと非圧縮の両方のバージョンのページが同時にメモリー内に保持されるため、OLTP スタイルのワークロードで圧縮を使用するときは、innodb_buffer_pool_size 構成オプションの値を大きくする準備をしてください。


User Comments
Sign Up Login You must be logged in to post a comment.