如何获取MySQL中表的大小?(官方校正版)

news2024/12/23 14:47:35

与大多数关系数据库一样,MySQL 提供了有关数据库本身的有用元数据。虽然大多数其他数据库将此信息称为 catalog, 但MySQL 官方文档INFORMATION_SCHEMA 将元数据  称为 tables

目录

1 列出单个数据库中的单表大小

2 列出所有数据库中的所有表大小


以下SQL语句的测试可以使用命令行,或是使用SQL工具比如MySQL Workbench或SQLynx等。

无论名称如何,重要的是这些 INFORMATION_SCHEMA 表提供的信息。从 到 的所有内容 views 都 user_privilieges 可以 columns 在 tables 中找到 INFORMATION_SCHEMA。就我们的目的而言,我们特别感兴趣的是 tables 元数据,我们可以查询元数据以实际提取系统中各个表的大小。

1 列出单个数据库中的表大小


正如在 官方文档,该 INFORMATION_SCHEMA.TABLES 表包含大约 20 列,但为了确定表使用的磁盘空间量,我们将特别关注两列: DATA_LENGTH 和 INDEX_LENGTH

  • DATA_LENGTH 是表中所有数据的长度(或大小)(以 为单位 bytes)。
  • INDEX_LENGTH 是表的索引文件的长度(或大小)(也以 为单位 bytes)。

有了这些信息,我们可以执行查询,列出特定数据库中的所有表以及每个表的磁盘空间(大小)。我们甚至可以更花哨一点,将正常大小值转换为 bytes 对大多数人更有用、更容易理解的值,例如 megabytes

SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
  TABLE_SCHEMA = "bookstore"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

在这个使用 bookstore 数据库的例子中,我们将和合并 DATA_LENGTH 为 INDEX_LENGTH , bytes然后将其除以 1024 两次 以转换为 kilobytes 和 megabytes。我们的结果集将如下所示:

+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...

如果您不关心数据库中的所有表,而只想要特定表的大小,则可以简单地添加 AND TABLE_NAME = "your_table_name" 到 WHERE 子句中。这里我们只需要有关 book 表的信息:

SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "bookstore"
  AND
    TABLE_NAME = "book"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

正如预期的那样,结果如下:

+-------+-----------+
| Table | Size (MB) |
+-------+-----------+
| book  |       267 |
+-------+-----------+
1 row in set (0.00 sec)

2 列出所有数据库中的所有表大小


如果您遇到数据库大小不断增长但不知道哪个表是罪魁祸首的问题,查询 整个系统中所有数据库中所有 表 的大小可能会很有用 。这可以通过以下查询轻松完成:

SELECT
  TABLE_SCHEMA AS `Database`,
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

这不仅会返回表的大小,还会返回与其关联的表名和父数据库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1807997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从年金理论到杠杆效应,再到财务报表与投资评估指标

一、解释普通年金终值和普通年金现值的概念。 普通年金终值:以利率为1%,每期收款100元,5期为例,普通年金终值的折算过程如图: 普通年金现值:以利率为1%,每期收款100元,5期为例&am…

【C++修行之道】类和对象(六)再谈构造函数(初始化列表)| explicit关键字 | static成员 | 友元|匿名对象|拷贝时一些编译器优化

目录 一、再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1. 所有的成员,既可以在初始化列表初始化,也可以在函数体内初始化 2. 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次) 3. 类中包含以下成员,必须放在初始化列表位置进行初始化&…

【设计模式】行为型设计模式之 备忘录模式(快照模式)

介绍 备忘录应用场景明确并且有限,一般用来数据的防丢失、撤销和恢复。对大对象的备份和恢复,备忘录模式能有效的节省时间和空间开销。 定义 备忘录模式:也称为快照模式,在不违背封装原则的前提下,捕获一个对象的内…

20240610 基于QGIS生成地区示意图的地图shp文件

目录 本文目标前置条件具体步骤1. 创建Project2. 插入世界地图3. 对地区示意图进行地理匹配4. 创建shp文件,勾画轨迹 注意事项 本文目标 基于QGIS生成地区示意图的地图shp文件,此shp文件可以用来学习,但是未经审批不可用于发表。 前置条件 …

水滴型锤片粉碎机:多功能粉碎利器

在现代工业生产中,粉碎机作为一种重要的机械设备,广泛应用于饲料、化工、木材等多个领域。其中,水滴型锤片粉碎机凭借其设计和粉碎能力,成为市场上的热门产品。 水滴型锤片粉碎机其设计灵感来源于水滴的形态。这种设计使得机器在…

【全开源】房屋出租出售预约系统(FastAdmin+ThinkPHP+Uniapp)

房屋出租出售预约系统:一站式解决房产交易难题 一款基于FastAdminThinkPHPUniapp开发的房屋出租出售预约系统,支持小程序、H5、APP,包含房客、房东(高级授权)、经纪人(高级授权)三种身份。核心功能有:新盘销售、房屋租赁、地图找…

Android 事件分发机制详解(上)

前言 Android事件分发机制是Android开发者必须了解的基础。 目录 一. 基础认知 1.1 事件分发的由来 安卓的View是树形结构的,View可能会重叠在一起,当我们点击的地方有多个View都可以响应的时候,这个点击事件应该给谁呢?为了解…

cefsharp124.x升级125.x(cef125.0.21/Chromium 125.0.6422.142)

一、版本说明 1.1 依赖关系变化 依赖移除:cef.redist.x64,cef.redist.x86增加新支持chromiumembeddedframework.runtime 旧版本需要移除依赖cef.redist.x64和cef.redist.x86否则会初始化异常。 自版本121.*以后common依赖关系变化 chromiumembeddedframework.runtime.win-x6…

25.逢七必过

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/363 题目描述 逢七必过的游戏规则如下:对一…

训练集和测试集的分布一致性分析

规律一致性分析的实际作用   在实际建模过程中,规律一致性分析是非常重要但又经常容易被忽视的一个环节。通过规律一致性分析,我们可以得出非常多的可用于后续指导后续建模的关键性意见。通常我们可以根据规律一致性分析得出以下基本结论: …

【T3】畅捷通T3软件查询明细账等账簿,出现某些列串位置。

【问题描述】 查询畅捷通T3软件科目明细账的时候, 出现某些行的数据串位置, 摘要、金额、方向都没有在对应的列。 【解决方案】 根据跟踪发现,最终在客户档案上发现问题。 数据串位中对应的客户名称、简称中的对后面多了一个【tab】键的空格…

信息学奥赛初赛天天练-25-CSP-J2023基础题-中序、前序与后序转换秘籍,二叉树构建、遍历技巧,以及图的拓扑排序实战应用

PDF文档公众号回复关键字:20240610 2023 CSP-J 选择题 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 11 给定一棵二叉树,其前序遍历结果为:ABDECFG,中序遍历结果…

数据结构(4):串

只需要掌握小题,在考纲中占比不大 1 串的定义 1.1 基本定义 字符串 数据结构三要数:逻辑结构、存储结构、运算 子串必须是连续的! 空格也是一个字符!每个空格字符占1B 1.2 串和线性表 2 串的基本操作 比值的操作!&…

腾讯云和windows11安装frp,实现内网穿透

一、内网穿透目的 实现公网上,访问到windows上启动的web服务 二、内网穿透的环境准备 公网服务器、windows11的电脑、frp软件(需要准备两个软件,一个是安装到公网服务器上的,一个是安装到windows上的) frp下载地址下载版本 1.此版本(老版…

【CW32F030CxTx StartKit开发板】使用SLogic Combo 8作为下载和调试工具

本来是参加21ic的评测活动,不知道为什么评测文章一直被提示有不良内容,所以只好先在此记录一下相关的资料。 CW32F030CxTx StartKit开发板自身不带下载和调试工具,需要另外购买。正好手上有个SLogic Combo 8,它可以作为DAPLink使…

零基础直接上手java跨平台桌面程序,使用javafx(二)可视化开发Scene Builder

我们只做实用的东西,不学习任何理论,如果你想学习理论,请去买几大本书,慢慢学去。 NetBeans有可视化工具,但是IntelliJ IDEA对于javafx,默认是没有可视化工具的。习惯用vs的朋友觉得,写界面还要是有一个布局…

Linux:基础开发工具

文章目录 Linux 软件包管理器 yum什么是软件包关于rzsz查看软件包安装软件卸载软件安装扩展源 Linux 编辑器 vimvim的基本概念正常/普通/命令模式(Normal mode)插入模式(Insert mode)底行模式(last line mode) vim的基本操作[命令模式]切换至[插入模式][插入模式]切换至[命令模…

Linux下打印封装_统计函数执行时间_线程号时间戳打印

统计函数执行时间(多线程环境下统计结果不准) // 无返回值 #define FUNC_EXEC_TIME_NORET(fun,promote) ({ \ unsigned long long timeDelta 0; \ struct timespec t1 {0}; \ struct timespec t2 {0}; \ clock_gettime(CLOCK_MONOTONIC, &t1); \ …

26.多边形的判定

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/499 题目描述 给定 𝑛n 个整数 𝑎1,𝑎…

软件心学格物致知篇(7)软件开发文档写什么

软件心学格物致知篇(7)软件开发文档写什么 前言 当今约束大家生产力的有哪些因素?是编程语言?开发框架?开发IDE?还是自身迫切需要更高水平的技能? 好像上面的每一项技术都在不断发展,也在不断的为我们生…