暂无图片
mysql数据库月增长量问题
我来答
分享
DBAjack
2022-08-03
mysql数据库月增长量问题

如何统计出mysql数据库中的1个数据库月数据增长量?比如现在数据库是5G,查出上个月的数据库大小,然后相减得出月增长量

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
张sir

这个如果没有历史的监控数据的话,mysql内部是记录不了的。

暂无图片 评论
暂无图片 有用 0
打赏 0
布衣
暂无图片

写个监控脚本,每天du 一个数据目录。数据库本身没有记录数据增涨量

暂无图片 评论
暂无图片 有用 0
打赏 0
王运亮

可以粗略统计表或库级别数据量,两次收集,求差。

select table_schema, table_name, engine, table_type, sum(table_rows) as rows, round(sum(data_length)/1024/1024, 2) as `data(MB)`, round(sum(index_length)/1024/1024, 2) as `index(MB)`, round(sum(data_length+index_length)/1024/1024, 2) as `total_size(MB)` from information_schema.tables where table_schema not in ('mysql', 'information_schema', 'performance_schema', 'sys') and table_type not in('VIEW') group by table_schema, table_name, engine, table_type order by table_schema, table_name;
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
薛晓刚

如果有delete就不准了,当然如果你要个大概,也行

暂无图片 评论
暂无图片 有用 0
打赏 0
刚阿德
  • 对于单个实例,可以通过下面语句统计出该实例每个database的大小:
SELECT table_schema,SUM(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024/1024 AS total_mb FROM information_schema.TABLES group by table_schema
复制
  • 后面要做的,就是将当天/月的结果写入到库表里,比如写入dba_statistic.tmp_database_info:
insert into tmp_database_info (instance_id,business_ip,database_name,db_size,createdate)
复制
  • 如果要统计多个实例,就需要通过自动化脚本,循环所有的实例,每个实例执行上面的select和insert操作
  • 我们是写入clickhouse,脚本用python编写
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏