mysql空间占用

devtools/2025/3/4 10:57:49/

1、查询数据库占用空间

        可以通过查询 information_schema 系统数据库中的 SCHEMATA 表和 TABLES 表来获取数据库占用的空间大小。

SELECT table_schema AS `数据库名称`,SUM(data_length + index_length) / 1024 / 1024 AS `占用空间(MB)`
FROM information_schema.TABLES
GROUP BY table_schema;

  • information_schema.TABLES:这是 MySQL 系统数据库 information_schema 中的一个表,它存储了所有数据库中表的元数据信息。
  • data_length:表示表的数据占用的字节数。
  • index_length:表示表的索引占用的字节数。
  • SUM(data_length + index_length):计算表的数据和索引总共占用的字节数。
  • / 1024 / 1024:将字节数转换为兆字节(MB)。
  • GROUP BY table_schema:按数据库名称进行分组,以便统计每个数据库的总空间占用。

2、查询表占用空间

        同样可以使用 information_schema.TABLES 表来查询单个表或多个表占用的空间大小。

-- 查询指定数据库(例如 'test_db')中所有表占用的空间大小
SELECT table_name AS `Table`,(data_length + index_length) / 1024 / 1024 AS `Size (MB)`
FROM information_schema.TABLES
WHERE table_schema = 'snowy';

代码解释

  • table_name:表示表的名称。
  • (data_length + index_length) / 1024 / 1024:计算表的数据和索引总共占用的兆字节数。
  • WHERE table_schema = 'test_db':指定查询的数据库名称。
  • AND table_name = 'test_table':指定查询的表名称。

降序查询

-- 查询指定数据库(例如 'test_db')中所有表占用的空间大小
SELECTtable_name AS `Table`,( data_length + index_length ) / 1024 / 1024 AS `Size (MB)` 
FROMinformation_schema.TABLES 
WHEREtable_schema = 'snowy' 
ORDER BY`Size (MB)` DESC;

 

3、查询索引占用空间

        可以通过查询 information_schema.STATISTICS 表来获取索引占用的空间大小。

-- 查询指定数据库(例如 'test_db')中指定表(例如 'test_table')的索引占用的空间大小
SELECT table_name,-- 这里因为只查一个表,所以索引总大小就代表该表所有索引的大小SUM(index_length) / 1024 / 1024 AS `Index Size (MB)`
FROM information_schema.TABLES
WHERE table_schema = 'snowy'AND table_name = 'sys_user'
GROUP BY table_name;

代码解释

  • 表的选择:从 information_schema.TABLES 表中查询数据,该表包含了表的元数据信息,其中就有 index_length 列用于表示索引占用的字节数。
  • 筛选条件
    • table_schema = 'snowy':指定要查询的数据库为 snowy
    • table_name = 'sys_user':指定要查询的表为 sys_user
  • 聚合计算
    • SUM(index_length):对指定表的索引占用字节数进行求和。
    • / 1024 / 1024:将字节数转换为兆字节(MB)。
  • 分组:使用 GROUP BY table_name 按表名进行分组,由于我们只查询一个表,所以实际上就是统计该表的索引总大小。

http://www.ppmy.cn/devtools/164435.html

相关文章

Docker详解

目录 前言 一、Docker核心概念 1. 镜像 2. 容器 3.容器 vs 虚拟机 4. 仓库 5. 容器与宿主机文件交互 二、数据卷与挂载 1.挂载 2.数据卷 3.数据卷挂载 4.本地目录挂载 5. 挂载模式对比 三、容器网络 1. 网络模式 2. 自定义网络 3. 端口映射 四、Dockerfile与…

Matlab中使用GUIDE工具开发图形用户界面(GUI)

文章目录 1. 初识GUIDE工具1.1 .m 和 .fig的区别和联系1.2 GUIDE工具的详细介绍1.3 GUI控件的属性1.4 自动生成的 .m 文件1.5 回调函数 2. GUI中常见的函数2.1 get 和 set 函数2.2 handles.Tag2.3 OpeningFcn 和 OutputFcn2.4 Callback2.5 CreateFcn 和 DeleteFcn2.6 ButtonDow…

BUU43 [BJDCTF2020]The mystery of ip 1

前置知识: X - Forwarded - For注入 X - Forwarded - For(XFF)是一个 HTTP 头字段,用于记录客户端的真实 IP 地址。当客户端请求经过代理服务器时,代理服务器会将客户端的 IP 地址添加到 X - Forwarded - For 头中。…

Webpack打包构建流程

webpack的打包构建流程 为什么需要打包? 在前端有非常多的资源,如css、js、vue、vue、 图片、字体等。 有些资源需要加工处理 1. ts -> js ts-loader 2. css -> css-loader style-loader 3. 图片 -> file-loader url-loader 4. html -…

基于javaweb的SpringBoot图书个性化推荐系统设计和实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

从JSON过滤到编程范式:深入理解JavaScript数据操作

一、现实场景:某系统的数据过滤需求 1.1 原始数据结构 // 服务端返回数据示例(含元数据) const engineData {count: 5,next: "https://xxx/?page2",results: [{id:1, name:"我是数据A", status:1},{id:2, name:"…

机试题——通讯录合并

题目描述 你有一个通讯录,每个联系人包含姓名和手机号,一个联系人可能有多个手机号。如果两个联系人拥有相同的手机号,我们认为他们是同一个人。任务是整理通讯录,将具有相同手机号的联系人合并为一个联系人,并返回合…

HiRT:利用分层机器人Transformer 增强机器人控制

25年2月来自清华、伯克利分校和上海姚期智研究院的论文“HiRT: Enhancing Robotic Control with Hierarchical Robot Transformers”。 大型视觉-语言-动作 (VLA) 模型利用强大的预训练视觉-语言模型 (VLM) 后端,由于其深刻的泛化能力而在机器人控制方面显示出良好…