首页新闻找找看学习计划

saas平台中采用共享mysql数据库表,每个用户所占用的表空间大小该怎么监控,或该怎么才能计算出来?

0
悬赏园豆:20 [待解决问题]

背景:saas平台采用共享mysql数据库,共享数据库表的模式,每个表有都有个外键uid来标识每个用户,而且表的有些字段是varchar类型的,需要监控每个租户所占用的表空间以及变化情况。

 

问题:那该怎么计算出每个用户所占用的表空间大小呢?该怎么监控每个用户所占用表空间大小的变化情况呢?比如说表testA,要计算出每个用户占用testA表空间大小的情况,监控占用表空间大小的变化情况,这个该怎么实现?

 

目前想到的方案:可不可以采用java字段与表字段映射关系来做呀?就是平台里采用的Hibernate,java对象与数据库表是一一对应的。先获得java对象每个字段的长度,再按这篇文章(http://blog.csdn.net/J080624/article/details/52875344)的字段大小来进行换算呀,每行记录都对应一个租户,通过这种方式来获得要插入的一行记录的大小,进而获得对应租户的所有大小。请问这种方案可行吗?

北纬蓝天白云的主页 北纬蓝天白云 | 初学一级 | 园豆:179
提问于:2018-01-24 11:35
< >
分享
所有回答(2)
0

不好意思,我是来测试是否能输入中文的

数据酷软件 | 园豆:371 (菜鸟二级) | 2018-01-24 11:55
0

这种貌似不合适,你不考虑索引空间了?还不如直接用用户的条数/总条数*db大小算个大概值

Daniel Cai | 园豆:10374 (专家六级) | 2018-01-24 15:19

如果考虑数据大小+索引大小,有什么好的建议没有呀?

支持(0) 反对(0) 北纬蓝天白云 | 园豆:179 (初学一级) | 2018-01-24 15:27

@北纬蓝天白云: 不是说了么?直接拿磁盘总开销来算啊

支持(0) 反对(0) Daniel Cai | 园豆:10374 (专家六级) | 2018-01-24 15:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册