#### 15.15.1.3 使用压缩信息模式表

[](<>)

**示例 15.1 使用压缩信息模式表**

以下是包含压缩表的数据库的示例输出（请参阅[第 15.9 节，“InnoDB 表和页面压缩”](innodb-compression.html),[`INNODB_CMP`](information-schema-innodb-cmp-table.html),[`INNODB_CMP_PER_INDEX`](information-schema-innodb-cmp-per-index-table.html)， 和[`INNODB_CMPMEM`](information-schema-innodb-cmpmem-table.html)）。

下表显示了内容[`INFORMATION_SCHEMA.INNODB_CMP`](information-schema-innodb-cmp-table.html)灯光下[工作量](glossary.html#glos_workload).缓冲池包含的唯一压缩页面大小是 8K。自重置统计信息以来，压缩或解压缩页面所用的时间不到一秒，因为列`COMPRESS_TIME`和`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`](information-schema-innodb-cmpmem-table.html)，共有 6169 个压缩的 8KB 页[缓冲池](glossary.html#glos_buffer_pool).唯一分配的其他块大小是 64 字节。最小的`页面大小`在[`INNODB_CMPMEM`](information-schema-innodb-cmpmem-table.html)用于缓冲池中不存在未压缩页面的压缩页面的块描述符。我们看到有 5910 个这样的页面。间接地，我们看到 259 (6169-5910) 个压缩页面也以未压缩的形式存在于缓冲池中。

下表显示了内容[`INFORMATION_SCHEMA.INNODB_CMPMEM`](information-schema-innodb-cmpmem-table.html)灯光下[工作量](glossary.html#glos_workload).由于压缩页面的内存分配器碎片，一些内存无法使用：`总和（PAGE_SIZE*PAGES_FREE）=6784`.这是因为小内存分配请求是通过拆分更大的块来满足的，从主缓冲池分配的 16K 块开始，使用伙伴分配系统。碎片如此之低，因为一些分配的块已被重新定位（复制）以形成更大的相邻空闲块。这种复制`总和（PAGE_SIZE*RELOCATION_OPS）`字节已消耗不到一秒`（总和（RELOCATION_TIME）=0）`.

[](<>)

| 页面大小 | 使用的页面 | 免费页面 | 搬迁行动 | 搬迁时间 |
| ---- | ----- | ---- | ---- | ---- |
| 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 |
