GBase8a使用系统表 information_schema.cluster_tables 统计 表占用空间大小
通过 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)
复制表的计算方式也一样。
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529