写在前面:


现在有这样一个需求,需要统计线上数据库每天产生的数据量有多少,以此来反馈线上业务库的繁忙程度,怎么做呢?刚开始的时候,考虑用统计数据库备份文件大小,然后对比几天内的数据量差异的方法来进行统计,后来经过思考,发现这样一来,只能看出数据量增加了多少(只能统计insert、create等)。但如果业务库更多的是执行update、delete等操作,你会发现其实你的数据量并不会增加,甚至数据量较之前还会减少,这样,反映不了线上业务库的真实情况,而且这其中还掺杂着表碎片的影响。所以,经过考虑,笔者决定写个简单的Shell,分析binlog来进行统计较为靠谱