统计每个库每个表的大小是数据治理的其中最简单的一个要求,本文将从抽样统计结果及精确统计结果两方面来统计MySQL的每个库每个表的数据量情况。
1、统计预估数据量
mysql数据字典库information_schema里记录了统计的预估数据量(innodb引擎表不准确,MyISAM引擎表准确)及数据大小、索引大小及表碎片的大小等信息。
如果想了解每个库及表的大概数据量级,可以直接查information_schema.tables进行统计即可。例如:
其中data_size单位为B
如上文所述,统计信息里的数据条数及size是根据部分数据抽样统计的值,与实际大小存在差异,且表越大,差异越明显,如果想知道每张表的实际情况,需用后续的方法。
2、统计实际数据量
想要统计每张表的实际大小就得去遍历每个表算出对的记录数,通过查看表空间大小(每个表独立表空间)查看每个表的size。通过以下步骤即可达到精确统计的目的。
创建路径
创建一个工作路径,保存脚本及临时文件等
创建统计库及表
在需要统计的数据库实例上创建统计库
创建统计的存储过程
创建脚本
结果如下:
可以看出精确值与统计信息里的值差异还是很大的,且表越大 差异越明显。
TIPS: 本文精确统计的脚本还有许多优化空间,写的比较仓促,大家可以按需自行调整,水平有限,欢迎斧正。如有问题,欢迎与我沟通。
以上就是实例讲解MySQL统计库表大小的详细内容,更多关于MySQL统计库表大小的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/gjc592/p/13209367.html