MySQL 8.0 リファレンスマニュアル


15.15.1.3 圧縮情報スキーマテーブルの使用

例 15.1 圧縮情報スキーマテーブルの使用

圧縮テーブルを含むデータベースからのサンプル出力を次に示します (セクション15.9「InnoDB のテーブルおよびページの圧縮」INNODB_CMPINNODB_CMP_PER_INDEX、および INNODB_CMPMEM を参照してください)。

次の表は、軽いワークロード下にある INFORMATION_SCHEMA.INNODB_CMP の内容を示しています。 バッファープールに含まれている唯一の圧縮ページサイズは 8K です。 カラム COMPRESS_TIME および UNCOMPRESS_TIME が 0 であるため、ページの圧縮または圧縮解除で消費された時間は統計がリセットされてから 1 秒未満でした。

page size compress ops compress ops ok compress time uncompress ops uncompress time
1024 0 0 0 0 0
2048 0 0 0 0 0
4096 0 0 0 0 0
8192 1048 921 0 61 0
16384 0 0 0 0 0

INNODB_CMPMEM によると、バッファープール内には 6169 個の圧縮された 8K バイトページが存在します。 割り当てられているほかのブロックサイズは 64 バイトだけです。 INNODB_CMPMEM 内のもっとも小さい PAGE_SIZE は、対応する圧縮解除されたページがバッファープール内に存在しない圧縮ページのブロックディスクリプタとして使用されます。 このようなページが 5910 個存在することがわかります。 また、間接的には、259 (6169-5910) 個の圧縮ページもバッファープール内に圧縮解除された形式で存在することがわかります。

次の表は、軽いワークロード下にある INFORMATION_SCHEMA.INNODB_CMPMEM の内容を示しています。 圧縮ページのためのメモリーアロケータの断片化のために、一部のメモリー SUM(PAGE_SIZE*PAGES_FREE)=6784 は使用できません。 これは、小さなメモリー割り当て要求が、バディーアロケーションシステムを使用して (メインのバッファープールから割り当てられる 16K ブロックから始めて) より大きなブロックを分割することによって満たされるためです。 断片化がこのように少ないのは、より大きな隣接した空きブロックを形成するために、割り当てられた一部のブロックが再配置 (コピー) されたためです。 この SUM(PAGE_SIZE*RELOCATION_OPS) バイトのコピーで消費された時間は 1 秒未満でした ((SUM(RELOCATION_TIME)=0))。

page size pages used pages free relocation ops relocation time
64 5910 0 2436 0
128 0 1 0 0
256 0 0 0 0
512 0 1 0 0
1024 0 0 0 0
2048 0 1 0 0
4096 0 1 0 0
8192 6169 0 5 0
16384 0 0 0 0


関連キーワード:  InnoDB, テーブル, 圧縮, 構成, INFORMATION, SCHEMA, ページ, プール, スペース, ロック