GBase 8a
运维管理
文章

GBase8a使用系统表 information_schema.cluster_tables 统计 表占用空间大小

发表于2024-02-22 14:33:10370次浏览2个评论

通过 information_schema.cluster_tables 表的 TABLE_DATA_SIZE 和 TABLE_STORAGE_SIZE 字段进

行统计。

TABLE_DATA_SIZE 是数据存储空间(主备分片之和);

TABLE_STORAGE_SIZE 是数据存储空间+元数据存储空间(主备分片之和)

以本地虚拟机 2 节点集群 p 2 d 1 配置为例,创建 hash 分布表 test:

CREATE TABLE "test" ("a" int(11) DEFAULT NULL) DISTRIBUTED BY('a'); 插 入 数 据 并 翻 倍 到

83886080 条记录。

gbase>

select

TABLE_NAME,TABLE_DATA_SIZE,TABLE_STORAGE_SIZE

from

information_schema.cluster_tables where table_schema='lz' and table_name='test';

+------------+-----------------+--------------------+

| TABLE_NAME | TABLE_DATA_SIZE | TABLE_STORAGE_SIZE |

+------------+-----------------+--------------------+

| test

|

1571972 |

1846824 |

+------------+-----------------+--------------------+

1)TABLE_DATA_SIZE 计算

[gbase@node1 test_n2]$ pwd

/opt/gnode/userdata/gbase/lz/sys_tablespace/test_n2

[gbase@node1 test_n1]$ du -csb *

104428 C00000.seg

209177 C00000.seg.1

313605 total

[gbase@node1 test_n1]$ cd ../test_n2/

[gbase@node1 test_n2]$ du -csb *

157454 C00000.seg

314927 C00000.seg.1

472381 total

(313605+472381)*2=1571972(TABLE_DATA_SIZE)

2)TABLE_STORAGE_SIZE 计算

再计算元数据空间

[gbase@node1 test_n1.GED]$ pwd

/opt/gnode/userdata/gbase/lz/metadata/test_n1.GED

[gbase@node1 test_n1.GED]$ du -csb *

128 C00000.ctl.A

128 C00000.ctl.B54325 C00000.map

230 table.des.A

230 table.des.B

52 table.state.A

52 table.state.B

55145 total

[gbase@node1 test_n1.GED]$ cd ../test_n2.GED/

[gbase@node1 test_n2.GED]$ du -csb *

128 C00000.ctl.A

128 C00000.ctl.B

81461 C00000.map

230 table.des.A

230 table.des.B

52 table.state.A

52 table.state.B

82281 total

(55145 + 82281)*2 + 1571972(TABLE_DATA_SIZE)=1846824 (TABLE_STORAGE_SIZE)

复制表的计算方式也一样。

评论

登录后才可以发表评论
SxYanna发表于 4个月前
没有什么根据schema_name和table_name进行的分组统计视图吗。
崔哥发表于 4个月前
黄师塔前江水东,春光懒困倚微风。桃花一簇开无主,可爱深红爱浅红?