本文介紹如何以數據表、數據庫、集群三個維度查看列存數據的空間占用情況。
版本限制
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 | 列存文件的總空間大?。˙yte) |
INDEX_META_SPACE | 列存索引級元數據文件大?。˙yte) |
NCI_SPACE | 列存索引與行存的主鍵映射文件大小(Byte) |
PACK_DATA_SPACE | 列存Pack數據文件大?。˙yte) |
FULL_PACKMETA_SPACE | 列存Full Pack元數據文件大?。˙yte) |
PARTIAL_PACKMETA_SPACE | 列存Partial Pack元數據文件大?。˙yte) |
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;
文檔內容是否對您有幫助?