INNODB_CMP_PER_INDEX
および INNODB_CMP_PER_INDEX_RESET
テーブルには、圧縮 InnoDB
テーブルおよびインデックスに関連した操作に関するステータス情報と、データベース、テーブル、およびインデックスの組み合わせごとの統計が含まれており、特定のテーブルの圧縮のパフォーマンスと有用性を評価する場合に役立ちます。
圧縮 InnoDB
テーブルについては、テーブルデータとすべてのセカンダリインデックスの両方が圧縮されます。このコンテキストでは、テーブルデータは、単なる別のインデックス、たまたますべてのカラムが含まれているインデックス (クラスタ化されたインデックス) として扱われます。
表 21.2 INNODB_CMP_PER_INDEX および INNODB_CMP_PER_INDEX_RESET のカラム
カラム名 | 説明 |
---|---|
DATABASE_NAME |
適用可能なテーブルを含むデータベース。 |
TABLE_NAME |
圧縮統計についてモニターするテーブル。 |
INDEX_NAME |
圧縮統計についてモニターするインデックス。 |
COMPRESS_OPS |
圧縮操作の試行回数。空のページが作成されたり、非圧縮変更ログ用の領域が不足したりするたびに、ページが圧縮されます。 |
COMPRESS_OPS_OK |
成功した圧縮操作の数。COMPRESS_OPS 値から引き算すると、圧縮の失敗の回数が求められます。COMPRESS_OPS 値で割り算すると、圧縮の失敗の割合が求められます。 |
COMPRESS_TIME |
このインデックスのデータの圧縮に使用された CPU 使用時間の合計 (秒単位)。 |
UNCOMPRESS_OPS |
実行された圧縮解除操作の回数。圧縮 InnoDB ページは、圧縮が失敗した場合はいつでも圧縮解除されます。または、バッファープールにおいてはじめて圧縮ページへのアクセスがあり、圧縮解除されたページが存在しないときに圧縮解除されます。 |
UNCOMPRESS_TIME |
このインデックスのデータの圧縮解除に使用された CPU 使用時間の合計 (秒単位)。 |
例:
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX \G
*************************** 1. row ***************************
database_name: employees
table_name: salaries
index_name: PRIMARY
compress_ops: 0
compress_ops_ok: 0
compress_time: 0
uncompress_ops: 23451
uncompress_time: 4
*************************** 2. row ***************************
database_name: employees
table_name: salaries
index_name: emp_no
compress_ops: 0
compress_ops_ok: 0
compress_time: 0
uncompress_ops: 1597
uncompress_time: 0
2 rows in set (0.00 sec)
注:
これらのテーブルを使用して、特定のテーブルまたはインデックス、あるいはその両方について
InnoDB
テーブル圧縮の有効性を測定します。DESCRIBE
またはSHOW COLUMNS
を使用すると、データ型とデフォルト値を含む、これらのテーブルのカラムに関する追加情報を表示できます。これらのテーブルをクエリーするには
PROCESS
権限が必要です。すべてのインデックスで個別に測定値を収集すると、大幅なパフォーマンスオーバーヘッドが発生するので、デフォルトでは
INNODB_CMP_PER_INDEX
およびINNODB_CMP_PER_INDEX_RESET
統計は収集されません。モニターする圧縮テーブルで操作を実行する前に、innodb_cmp_per_index_enabled
構成オプションを有効にする必要があります。使用法については、セクション14.7.4「実行時の圧縮のモニタリング」およびセクション14.14.1.3「圧縮情報スキーマテーブルの使用」を参照してください。
InnoDB
テーブルの圧縮に関する一般情報については、セクション14.7「InnoDB 圧縮テーブル」を参照してください。