前言
统计每个库每个表的大小是数据治理中最简单的一个要求,下面从抽样统计结果及精确统计结果两方面来统计MySQL的每个库每个表的数据量情况。mysql 数据字典库 information_schema 里记录了统计的预估数据量(innodb 引擎表不准确,MyISAM 引擎表准确)及数据大小、索引大小及表碎片的大小等信息。如果想了解每个库及表的大概数据量级可以直接查 information_schema.tables 进行统计即可。
一、统计所有数据库的大小
mysql> use information_schema;
Database changed
mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;
+-----------+
| data |
+-----------+
| 1101.44MB |
+-----------+
1 row in set (0.09 sec)
二、统计所有表的大小
mysql> SELECT SUM(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024/1024 AS total_mb FROM information_schema.TABLES;
+---------------+
| total_mb |
+---------------+
| 1326.28188610 |
+---------------+
1 row in set (0.11 sec)
三、统计每个数据库的大小
mysql> SELECT
table_schema,