查询IMCI空间统计明细

本文介绍如何以数据表、数据库、集群三个维度查看列存数据的空间占用情况。

版本限制

  • 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_SPACENCI_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;