GBase 8a 目前版本都是采用一个库一个目录,表是库下面的子目录的方式保存数据,本文提供了一些查看一个库或schema占用磁盘空间方法以供参考。
文件系统级估算
直接从文件系统,找到该库所在的目录,计算其占有的空间。该才做仍然会消耗大量的磁盘资源,表越多,列越多,消耗越大。
du -sh 安装目录/gnode/userdata/gbase/库名
影响程度建议在实际环境测试后,再决定是否使用。比如100万个表,预计可能要几分钟到几十分钟的磁盘消耗,换SSD等高速盘会极大改善影响程度。
需要计算每个节点的空间,然后累加后为占用的总空间。 如果各个节点磁盘占用接近,也可以用单个节点统计结果*计算节点数量来估算。
自定义表空间
V95版本支持自定义表空间,并支持配额管理。
通过查询元素据表 information_schema.tablespaces ,获得表空间的磁盘占用。
该使用空间,在每次数据有变动是自动修正,无需每次都扫描所有子目录,故性能好。
如下是一个库,配置了2个表空间的例子。将每个节点的每个表空间,累加后就是总空间占用。
gbase> select * from information_schema.tablespaces where db_name=‘ab’;
±----------±--------±--------------±----------------±---------------------------±-----------±----------±----------±----------±---------+
| NODE_NAME | DB_NAME | TABLESPACE_ID | TABLESPACE_NAME | TABLESPACE_PATH | IS_DEFA