MySQL 8.4 Release Notes
28.4.7 INFORMATION_SCHEMA INNODB_CMPMEM 和 INNODB_CMPMEM_RESET 表
INNODB_CMPMEM 和 INNODB_CMPMEM_RESET 表提供了 InnoDB 缓冲池中压缩页面的状态信息。
INNODB_CMPMEM 和 INNODB_CMPMEM_RESET 表具有以下列:
-
PAGE_SIZE
以字节为单位的块大小。该表中的每条记录都描述了这个大小的块。
-
BUFFER_POOL_INSTANCE
缓冲池实例的唯一标识符。
-
PAGES_USED
当前使用的块数量,大小为
PAGE_SIZE
。 -
PAGES_FREE
当前可分配的块数,块大小为
PAGE_SIZE
。该列显示内存池中的外部碎片情况。理想情况下,这些数字应该不超过1。 -
RELOCATION_OPS
块大小为
PAGE__SIZE
的块被 relocate 的次数。Buddy系统可以在尝试形成更大的自由块时,重新分配已释放块的邻居。当从INNODB_CMPMEM_RESET表中读取时,这个计数器将被重置。 -
RELOCATION_TIME
块大小为
PAGE_ SIZE
的块 relocate 所用的总时间(微秒)。从表INNODB_CMPMEM_RESET中读取时,这个计数器将被重置。
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM\G
*************************** 1. row ***************************
page_size: 1024
buffer_pool_instance: 0
pages_used: 0
pages_free: 0
relocation_ops: 0
relocation_time: 0
*************************** 2. row ***************************
page_size: 2048
buffer_pool_instance: 0
pages_used: 0
pages_free: 0
relocation_ops: 0
relocation_time: 0
*************************** 3. row ***************************
page_size: 4096
buffer_pool_instance: 0
pages_used: 0
pages_free: 0
relocation_ops: 0
relocation_time: 0
*************************** 4. row ***************************
page_size: 8192
buffer_pool_instance: 0
pages_used: 7673
pages_free: 15
relocation_ops: 4638
relocation_time: 0
*************************** 5. row ***************************
page_size: 16384
buffer_pool_instance: 0
pages_used: 0
pages_free: 0
relocation_ops: 0
relocation_time: 0
-
使用这些表来衡量InnoDB表压缩在您的数据库中的有效性。
-
您需要拥有
PROCESS
特权来查询该表。 -
使用INFORMATION_SCHEMA COLUMNS表或
SHOW COLUMNS
语句来查看该表的列信息,包括数据类型和默认值。 -
使用信息,请参见第17.9.1.4节,“实时监控 InnoDB 表压缩”和第17.15.1.3节,“使用压缩信息架构表”。关于
InnoDB
表压缩的总体信息,请参见第17.9节,“InnoDB 表和页面压缩”。