本文介绍如何以数据表、数据库、集群三个维度查看列存数据的空间占用情况。
版本限制
PolarDB MySQL版的数据库引擎版本为8.0.1时,小版本需为8.0.1.1.44及以上。
PolarDB MySQL版的数据库引擎版本为8.0.2时,小版本需为8.0.2.2.25及以上。
查询IMCI空间统计明细
可以通过查询表INFORMATION_SCHEMA.IMCI_INDEX_SPACE
来查看列存索引数据的空间占用情况。
字段说明
列名 | 说明 |
SCHEMA_NAME | 库名 |
TABLE_NAME | 表名 |
TABLE_ID | 表ID |
INDEX_ID | 列存索引ID |
TOTAL_SPACE | 列存文件的总空间大小(Byte) |
INDEX_META_SPACE | 列存索引级元数据文件大小(Byte) |
NCI_SPACE | 列存索引与行存的主键映射文件大小(Byte) |
PACK_DATA_SPACE | 列存Pack数据文件大小(Byte) |
FULL_PACKMETA_SPACE | 列存Full Pack元数据文件大小(Byte) |
PARTIAL_PACKMETA_SPACE | 列存Partial Pack元数据文件大小(Byte) |
MASK_SPACE | 列存可见性标记文件大小(Byte) |
说明
PACK_DATA_SPACE
和NCI_SPACE
是用于衡量列存空间消耗的主要指标。
提高查询性能
执行如下SQL减少打开元数据的开销,从而提高查询INFORMATION_SCHEMA.IMCI_INDEX_SPACE
的性能:
SET IMCI_I_S_SKIP_DD_OPEN = ON;
表维度
执行如下SQL查询TEST数据库中TEST表的列存数据空间占用明细:
SELECT
SCHEMA_NAME, TABLE_NAME, TOTAL_SPACE
FROM
INFORMATION_SCHEMA.IMCI_INDEX_SPACE
WHERE SCHEMA_NAME = 'TEST' AND TABLE_NAME = 'TEST';
数据库维度
执行如下SQL查询TEST数据库中所有列存数据的空间占用明细:
SELECT
SCHEMA_NAME, SUM(TOTAL_SPACE)
FROM
INFORMATION_SCHEMA.IMCI_INDEX_SPACE
WHERE SCHEMA_NAME = 'TEST';
集群维度
执行如下SQL查询当前集群中所有列存数据的空间占用明细:
SELECT
SUM(TOTAL_SPACE)
FROM
INFORMATION_SCHEMA.IMCI_INDEX_SPACE;
文档内容是否对您有帮助?