头图

如何查看 MySQL 数据库容量大小,表容量大小,索引容量大小?找到占用空间最大的表

如何在 MySQL 数据库管理中,查询数据库、表、索引的容量大小?我们可以在 MySQL 自带的 information_schema 库中的 Table 表里,找到所需信息。

在每个 MySQL 实例中,都有一个独立的 information_schema 库,它是自带的默认库,记录着这个 MySQL 实例中所有数据库的元数据、统计信息、以及有关 MySQL 的访问权限信息。这其中就包括了所有数据库、表、索引的详细信息。

数据库容量看板
如果你想使用图形工具构建自己的「数据库容量看板」并且一键分享给小伙伴共享看板,可在本文文末,找到如何使用卡拉云 1 分钟搭建「数据库容量看板」的教程

本教程所用到的 information_schema 库中 Table 表里的字段:

TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据容量大小
INDEX_LENGTH:索引容量大小

更多有关 information_schema 的信息,大家可在查看 MySQL 手册 深入了解。

有关 information_schema.TABLES 更多字段信息,可以使用以下命令查看更多:

use information_schema
SHOW COLUMNS FROM TABLES;

  1. 查看 MySQL「所有库」的容量大小
SELECT 
table_schema as '数据库',
sum(table_rows) as '记录数',
sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)',
sum(truncate(DATA_FREE/1024/1024, 2)) as '碎片占用(MB)'
from information_schema.tables
group by table_schema
order by sum(data_length) desc, sum(index_length) desc;

特别提示:data_length 、index_length 等字段,所存储的容量信息单位是字节,所以我们要除以 2 个 1024 把字节转化为可读性更强的 MB,下文同理,不再累述。

查看 MySQL「所有库」的容量大小
当前测试数据库中,一共有 17 个库,一个数据库的总大小是「数据」+「索引」容量之和。

  1. 查看 MySQL「指定库」的容量大小
SELECT 
table_schema as '数据库',
sum(table_rows) as '记录数',
sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)',
sum(truncate(DATA_FREE/1024/1024, 2)) as '碎片占用(MB)'
from information_schema.tables
where table_schema='kalacloud_test_data'
order by data_length desc, index_length desc;

注意:请将代码中 'kalacloud_test_data' 数据库名改为你要查询的数据库名。

查看 MySQL「指定库」的容量大小
单独查看 kalacloud_test_data 的容量信息。

本教程较长,更多内容请查看《如何查看 MySQL 数据库容量大小,表容量大小,索引容量大小?找到占用空间最大的表》源网站的完整版教程

你还将学习到:

  1. 查看 MySQL「指定库」中「所有表」的容量大小
  2. 查看 MySQL「指定库」中「指定表」的容量大小
  3. 查看 MySQL 数据库中,容量排名前 10 的表(最大的表)
  4. 查看 MySQL「指定库」中,容量排名前 10 的表
  5. 总结 - 使用卡拉云构建数据库容量看板

如果对你有帮助,还请单个赞再走。


97 声望
3 粉丝
0 条评论
推荐阅读
低代码是什么?国内排名前 5 的低代码开发平台对比
低代码是一套可视化开发工具,它帮开发者把前后端基础功能写扎实,开发者只需要通过填表配置或拖拽生成前端组件的方式,即可完成后台管理系统的快速搭建。由于低代码仍需要写少量 JS 代码,所以低代码开发平台主...

蒋川阅读 1k

封面图
万字详解,吃透 MongoDB!
MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C++ 编写的。MongoDB 提供了 面向文档 的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂的数据类型,是一款非常...

JavaGuide8阅读 1.7k

封面图
万字长文~vue+express+mysql带你彻底搞懂项目中的权限控制(附所有源码)
所谓的权限,其实指的就是:用户是否能看到,以及是否允许其对数据进行增删改查的操作,因为现在开发项目的主流方式是前后端分离,所以整个项目的权限是后端权限控制搭配前端权限控制共同实现的

水冗水孚11阅读 1.5k

花了几个月时间把 MySQL 重新巩固了一遍,梳理了一篇几万字 “超硬核” 的保姆式学习教程!(持续更新中~)
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

民工哥11阅读 1.1k

封面图
一次偶然机会发现的MySQL“负优化”
今天要讲的这件事和上述的两个sql有关,是数年前遇到的一个关于MySQL查询性能的问题。主要是最近刷到了一些关于MySQL查询性能的文章,大部分文章中讲到的都只是一些常见的索引失效场合,于是我回想起了当初被那个...

骑牛上青山8阅读 2.3k评论 2

程序员英语学习指南
动机为什么程序员要学习英语?工作:我们每天接触的代码都是英文的、包括很多技术文档也是英文的学习:最新最前沿的技术最开始都是只有English版本就业:学好英语让你的就业范围扩大到全球,而不只限于国内目标读...

九旬7阅读 685

初学后端,如何做好表结构设计?
这篇文章介绍了设计数据库表结构应该考虑的4个方面,还有优雅设计的6个原则,举了一个例子分享了我的设计思路,为了提高性能我们也要从多方面考虑缓存问题。

王中阳Go3阅读 789评论 2

封面图
97 声望
3 粉丝
宣传栏