一条语句查询MySQL各数据库的总大小

一. 核心步骤

  1. 登录MySQL命令行

    • 使用MySQL客户端登录数据库(例如:mysql -u username -p),确保用户有权限查询information_schema数据库。
  2. 执行SQL查询命令

    • 查询所有数据库的大小(单位:MB):

      SELECT TABLE_SCHEMA AS '数据库名称', 
             ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS '总大小_MB'
      FROM information_schema.TABLES 
      GROUP BY TABLE_SCHEMA;
      • 输出示例
        +-----------------+--------------+
        | 数据库名称       | 总大小_MB    |
        +-----------------+--------------+
        | database1       | 1314.50      |
        | database2       | 520.50       |
        | ...             | ...          |
        +-----------------+--------------+
      • 此命令计算每个数据库的数据长度(DATA_LENGTH)和索引长度(INDEX_LENGTH)总和,并转换为MB(保留两位小数)。
    • 额外选项:查询包含详情(数据大小、索引大小等)

      SELECT TABLE_SCHEMA AS '数据库名称',
             ROUND(SUM(DATA_LENGTH) / 1024 / 1024, 2) AS '数据大小_MB',
             ROUND(SUM(INDEX_LENGTH) / 1024 / 1024, 2) AS '索引大小_MB',
             ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS '总大小_MB'
      FROM information_schema.TABLES 
      GROUP BY TABLE_SCHEMA;
      输出示例:
+--------------------+--------------+--------------+------------+
| 数据库名称         | 数据大小_MB | 索引大小_MB | 总大小_MB |
+--------------------+--------------+--------------+------------+
| alarm              | 18.44        | 1.94         | 20.38      |
| app                | 0.02         | 0.00         | 0.02       |
|work_order          | 0.25         | 0.00         | 0.25       |
| dataroom           | 4.91         | 0.00         | 4.91       |
| information_schema  | 0.19         | 0.00         | 0.19       |
| mysql              | 7.59         | 0.29         | 7.88       |
| passenger_flow     | 502.81       | 24.78        | 527.59     |
| performance_schema | 0.00         | 0.00         | 0.00       |
| pig                | 68.86        | 14.61        | 83.47      |
| pig_codegen        | 0.16         | 0.03         | 0.19       |
| pig_config          | 0.23         | 0.20         | 0.44       |
| pig_job             | 6.80         | 0.33         | 7.13       |
| sys                | 0.02         | 0.00         | 0.02       |
| __tencentdb__       | 0.17         | 0.09         | 0.27       |
+--------------------+--------------+--------------+------------+

二.  注意事项

  • 性能影响information_schema.TABLES表包含所有数据库的元数据。在大型实例中(如数万张表),查询可能较慢(尤其是在繁忙时段)。建议在维护窗口执行。
  • 结果准确性:计算基于估计值而非实时锁表,大小可能略有偏差(如碎片未计入)。确保MySQL版本较新(如5.7+)以支持准确统计。
  • 单位调整:如需GB或KB输出,修改除数(例如 /1024/1024/1024 为GB)。
  • 权限要求:执行用户需拥有SELECT权限,否则会报错。可预先检查权限:SHOW GRANTS。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值