MySQL 查询数据库的数据总量

需求:查看MySQL数据库的数据总量,以MB为单位展示数据库占用的磁盘空间

实践:

  1. 登录到MySQL数据库服务器

  2. 选择你想要查看数据总量的数据库

    sql 复制代码
    USE shield;
  3. 运行查询以获取数据库的总大小

    sql 复制代码
    SELECT 
      table_schema AS 'Database',
      ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size in MB'
    FROM information_schema.TABLES 
    WHERE table_schema = 'shield'
    GROUP BY table_schema;

这个查询将返回数据库的名称和大小(以MB为单位)。这里,data_length 是表数据的大小,index_length 是索引的大小。我们将这两个值相加,然后除以1024两次(因为1MB = 1024KB,1KB = 1024字节)来转换为MB。

详细步骤解释:

  • table_schema:数据库名称。
  • data_length:表中数据的大小。
  • index_length:表索引的大小。
  • SUM(data_length + index_length):计算所有表的数据和索引总大小。
  • ROUND(..., 2):将结果四舍五入到小数点后两位。

示例:

假设你的数据库名称是 shield,运行以下查询:

sql 复制代码
SELECT 
  table_schema AS 'Database',
  ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size in MB'
FROM information_schema.TABLES 
WHERE table_schema = 'shield'
GROUP BY table_schema;

这将返回类似于以下结果:

+------------+-----------+
| Database   | Size in MB|
+------------+-----------+
| shield     |   6.66    |
+------------+-----------+

顺便看一下备份之后的大小

注意事项:

  • 这个查询返回的是近似值,因为MySQL在计算表大小时可能会有一些差异。
  • 如果你的数据库非常大,运行这个查询可能会消耗一些资源,因为它需要扫描所有的表。
相关推荐
Karoku06620 分钟前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
小技与小术2 小时前
数据库表设计范式
数据库·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验九 触发器
数据库·sql·mysql·oracle·实验报告
Loganer2 小时前
MongoDB分片集群搭建
数据库·mongodb
LKID体2 小时前
Python操作neo4j库py2neo使用之创建和查询(二)
数据库·python·neo4j
刘大浪2 小时前
后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用
数据库·spring boot·mybatis
一只爱撸猫的程序猿2 小时前
简单实现一个系统升级过程中的数据平滑迁移的场景实例
数据库·spring boot·程序员
无敌岩雀2 小时前
MySQL中的索引
数据库·mysql
a_安徒生3 小时前
linux安装TDengine
linux·数据库·tdengine