INNODB_CMP_PER_INDEX
テーブルおよび INNODB_CMP_PER_INDEX_RESET
テーブルでは、compressed InnoDB
のテーブルおよびインデックスに関連する操作のステータス情報が提供され、データベース、テーブルおよびインデックスの組合せごとに個別の統計が提供されるため、特定のテーブルの圧縮のパフォーマンスおよび有用性を評価できます。
圧縮 InnoDB
テーブルについては、テーブルデータとすべてのセカンダリインデックスの両方が圧縮されます。 このコンテキストでは、テーブルデータは、単なる別のインデックス、たまたますべてのカラムが含まれているインデックス (クラスタ化されたインデックス) として扱われます。
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
このインデックスのデータの圧縮に使用される合計時間 (秒)。
-
UNCOMPRESS_OPS
実行された圧縮解除操作の数。 圧縮
InnoDB
ページは、圧縮が失敗した場合はいつでも圧縮解除されます。または、バッファープールにおいてはじめて圧縮ページへのアクセスがあり、圧縮解除されたページが存在しないときに圧縮解除されます。 -
UNCOMPRESS_TIME
このインデックスのデータを圧縮解除するために使用される合計時間 (秒)。
例
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
メモ
これらのテーブルを使用して、特定のテーブルまたはインデックス、あるいはその両方について
InnoDB
テーブル圧縮の有効性を測定します。これらのテーブルをクエリーするには
PROCESS
権限が必要です。INFORMATION_SCHEMA
COLUMNS
テーブルまたはSHOW COLUMNS
ステートメントを使用して、データ型やデフォルト値など、これらのテーブルのカラムに関する追加情報を表示します。すべてのインデックスで個別に測定値を収集すると、大幅なパフォーマンスオーバーヘッドが発生するので、デフォルトでは
INNODB_CMP_PER_INDEX
およびINNODB_CMP_PER_INDEX_RESET
統計は収集されません。 監視する圧縮テーブルに対して操作を実行する前に、innodb_cmp_per_index_enabled
システム変数を有効にする必要があります。使用法については、セクション15.9.1.4「実行時の InnoDB テーブル圧縮の監視」およびセクション15.15.1.3「圧縮情報スキーマテーブルの使用」を参照してください。
InnoDB
テーブルの圧縮に関する一般情報については、セクション15.9「InnoDB のテーブルおよびページの圧縮」を参照してください。