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在计算表大小时可能会有一些差异。
  • 如果你的数据库非常大,运行这个查询可能会消耗一些资源,因为它需要扫描所有的表。
相关推荐
DashVector3 小时前
向量检索服务 DashVector产品计费
数据库·数据仓库·人工智能·算法·向量检索
KYGALYX4 小时前
在Linux中备份msyql数据库和表的详细操作
linux·运维·数据库
檀越剑指大厂4 小时前
金仓KReplay:定义数据库平滑迁移新标准
数据库
努力成为一个程序猿.5 小时前
【Flink】FlinkSQL-动态表和持续查询概念
大数据·数据库·flink
毕设十刻5 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
liliangcsdn6 小时前
如何利用约束提示优化LLM在问题转sql的一致性
数据库·sql
熙客6 小时前
Kubernetes是如何保证有状态应用数据安全和快速恢复的
mysql·云原生·容器·kubernetes
Java爱好狂.7 小时前
分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
java·数据库·分布式·分布式id·es·java面试·java程序员
Elastic 中国社区官方博客7 小时前
通过混合搜索重排序提升多语言嵌入模型的相关性
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
倔强的石头1068 小时前
KingbaseES:从兼容到超越,详解超越MySQL的权限隔离与安全增强
数据库·mysql·安全·金仓数据库