如何查询MySQL所有数据库的总大小(以GB为单位)?
获取所有MySQL数据库的总大小(GB单位)
嘿,你的问题很常见呀!你现在的SQL已经能完美列出每个数据库的单独大小了,要拿到所有库的总大小其实很简单,给你两种实用的方法:
方法一:直接计算所有表的总大小
这个方式最直接,跳过按数据库分组的步骤,直接把所有表的数据+索引大小加总:
SELECT SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024 ), 2)) AS "Total Size (GB)" FROM information_schema.TABLES;
方法二:基于你现有查询的二次汇总
如果你想先保留每个库的大小明细,再得到总数,可以在外层套一个查询来汇总:
SELECT SUM(`Size (GB)`) AS "Total Size (GB)" FROM ( -- 这部分就是你原来的查询,用来获取单个库的大小 SELECT SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024 ), 2)) AS "Size (GB)" FROM information_schema.TABLES GROUP BY table_schema ) AS db_size_details;
额外小技巧
默认查询会包含MySQL的系统库(比如mysql、information_schema这些),如果只想统计你自己创建的业务数据库,可以加个WHERE条件排除它们:
SELECT SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024 ), 2)) AS "Total Size (GB)" FROM information_schema.TABLES WHERE table_schema NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');
内容的提问来源于stack exchange,提问作者Dr Jay
相关产品推荐
相关产品推荐

