通过MySQL的information_schema数据库,可查询数据库中每个表占用的空间、表记录的行数;

该库中有一个TABLES表,这个表主要字段分别是:

TABLE_SCHEMA:数据库名

TABLE_NAME:表名

ENGINE:所使用的存储引擎

TABLES_ROWS:记录数

DATA_LENGTH:数据大小

INDEX_LENGTH:索引大小

其他字段请参考MySQL的手册,查看一个表占用空间的大小,那就相当于是数据大小 + 索引大小 。

查看所有库的大小

mysql> use information_schema;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;

+------------+

| data       |

+------------+

| 550.82MB   |

+------------+

1 row in set (0.17 sec)

查看指定库的大小

mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='mysql';

+---------+

| data    |

+---------+

| 0.70MB  |

+---------+

1 row in set (0.00 sec)

查看指定库的指定表的大小

mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='mysql' and table_name='user';

+---------+

| data    |

+---------+

| 0.00MB  |

+---------+

1 row in set (0.00 sec)

查看指定库的索引大小

mysql> SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' FROM TABLES WHERE table_schema = 'mysql';

+------------------+

| Total Index Size |

+------------------+

| 0.10 MB          |

+------------------+

1 row in set (0.00 sec)

查看指定库的指定表的索引大小

mysql> SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' FROM TABLES WHERE table_schema = 'mysql' and table_name='user';

+------------------+

| Total Index Size |

+------------------+

| 0.00 MB          |

+------------------+

1 row in set (0.00 sec)

mysql> show create table mysql.user\G

*************************** 1. row ***************************

Table: user

Create Table: CREATE TABLE `user` (

`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',

`User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',

`Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',

`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Reload_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Shutdown_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Process_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`File_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Show_db_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Super_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Repl_client_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Create_user_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

`ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',

`ssl_cipher` blob NOT NULL,

`x509_issuer` blob NOT NULL,

`x509_subject` blob NOT NULL,

`max_questions` int(11) unsigned NOT NULL DEFAULT '0',

`max_updates` int(11) unsigned NOT NULL DEFAULT '0',

`max_connections` int(11) unsigned NOT NULL DEFAULT '0',

`max_user_connections` int(11) unsigned NOT NULL DEFAULT '0',

`plugin` char(64) COLLATE utf8_bin DEFAULT 'mysql_native_password',

`authentication_string` text COLLATE utf8_bin,

`password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',

PRIMARY KEY (`Host`,`User`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'

1 row in set (0.00 sec)

mysql> select count(*) from mysql.user;

+----------+

| count(*) |

+----------+

| 20       |

+----------+

1 row in set (0.00 sec)

查询指定数据库中每个表的总行数,数据大小,索引大小和总大小

mysql> SELECT CONCAT(table_schema,'.',table_name) AS 'Table Name', CONCAT(ROUND(table_rows/1000000,4),'M') AS 'Number of Rows', CONCAT(ROUND(data_length/(1024*1024*1024),4),'G') AS 'Data Size', CONCAT(ROUND(index_length/(1024*1024*1024),4),'G') AS 'Index Size', CONCAT(ROUND((data_length+index_length)/(1024*1024*1024),4),'G') AS'Total'FROM information_schema.TABLES WHERE table_schema LIKE 'mysql';

+---------------------------------+----------------+-----------+------------+---------+

| Table Name                      | Number of Rows | Data Size | Index Size | Total   |

+---------------------------------+----------------+-----------+------------+---------+

| mysql.columns_priv                          | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.db                                    | 0.0001M | 0.0000G | 0.0000G | 0.0000G |

| mysql.event                                 | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.func                                  | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.general_log                           | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.help_category                         | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.help_keyword                          | 0.0006M | 0.0001G | 0.0000G | 0.0001G |

| mysql.help_relation                         | 0.0012M | 0.0000G | 0.0000G | 0.0000G |

| mysql.help_topic                            | 0.0006M | 0.0005G | 0.0000G | 0.0006G |

| mysql.ndb_binlog_index                      | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.plugin                                | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.proc                                  | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.procs_priv                            | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.proxies_priv                          | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.servers                               | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.slow_log                              | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.tables_priv                           | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.time_zone                             | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.time_zone_leap_second                 | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.time_zone_name                        | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.time_zone_transition                  | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.time_zone_transition_type             | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

| mysql.user                                  | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

+---------------------------------+----------------+-----------+------------+---------+

23 rows in set (0.00 sec)

查询数据库指定表的数据部分大小,索引部分大小和总占用磁盘大小

mysql> SELECT

a.table_schema ,

a.table_name ,

concat(round(sum(DATA_LENGTH / 1024 / 1024) + sum(INDEX_LENGTH / 1024 / 1024) ,2) ,'MB') total_size ,

concat(round(sum(DATA_LENGTH / 1024 / 1024) , 2) ,'MB') AS data_size ,

concat(round(sum(INDEX_LENGTH / 1024 / 1024) , 2) ,'MB') AS index_size

FROM

information_schema. TABLES a

WHERE

a.table_schema = '数据库'

AND a.table_name = '表名';

+----------------+-------------+-----------+-----------+------------+

| table_schema   | table_name  | total_size | data_size | index_size|

+---------------+--------------+-----------+-----------+------------+

| mysql         | user         | 0.00MB    | 0.00MB    | 0.00MB     |

+---------------+---------------+-----------+-----------+-----------+

1 row in set (0.00 sec)

查看Mysql数据库数据量大小、表大小、索引大小的更多相关文章

  1. MySQL数据库性能优化:表、索引、SQL等

    一.MySQL 数据库性能优化之SQL优化 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础 优化目标 减少 IO 次数IO永远是数据库最容易瓶颈的地 ...

  2. MySQL 大数据量修改表结构问题

    前言: 在系统正常运作一定时间后,随着市场.产品汪的需求不断变更,比较大的一些表结构面临不得不增加字段的方式来扩充满足业务需求:  而 MySQL 在体量上了千万.亿级别数据的时候,Alter Tab ...

  3. mysql 查询数据库内各表的占用大小

    select TABLE_NAME, concat(truncate(data_length/1024/1024,2),' MB') as data_size, concat(truncate(ind ...

  4. mysql管理 ------查看 MySQL 数据库中每个表占用的空间大小

    如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE ...

  5. 查看mysql数据库表大小和最后修改时间

    查看mysql数据库表相关信息如表大小.修改更新等信息,可以通过以下方式: 一   show table status like ’table_name‘ ; 二 在infortmation_sche ...

  6. 查看 MySQL 数据库中每个表占用的空间大小

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

  7. 随笔编号-16 MySQL查看表及索引大小方法

    目标:阿里云OS数据库DMS,单个主库最大存储空间为2T.最近公司业务扩展很快,一天数据量达到7.9G左右.要求备份清理历史数据,备份到其他磁盘. 准备: 如果想知道MySQL数据库中每个表占用的空间 ...

  8. SQL命令查看Mysql数据库大小

    SQL命令查看Mysql数据库大小的方法. 要想知道每个数据库的大小的话,步骤如下:1.进入information_schema 数据库(存放了其他的数据库的信息)use information_sc ...

  9. MySQL的表分区详解 - 查看分区数据量,查看全库数据量----转http://blog.csdn.net/xj626852095/article/details/51245844

    查看分区数据量,查看全库数据量 USE information_schema; SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PAR ...

  10. 查看MySQL数据库大小

    查看MySQL数据库大小 1.首先进入information_schema 数据库(存放了其他的数据库的信息) ? 1 2 mysql> use information_schema; Data ...

随机推荐

  1. 如何将一个模块文件编译到Linux内核中?

    很多粉丝在群里提问,如何把一个模块文件编译到内核中或者独立变异成ko文件.本文给大家详解讲解. 1. 内核目录 Linux内核源代码非常庞大,随着版本的发展不断增加.它使用目录树结构,并且使用Make ...

  2. WinForm 使用委托动态更新数据

    使用委托动态更新数据 详细代码 // 声明一个委托,用于更新消息的文本提示 private delegate void UpdateMsgTextDelegate(string text); // 定 ...

  3. Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型

    Funcion Calling介绍 函数调用允许您将模型如gpt-4o与外部工具和系统连接起来.这对于许多事情都很有用,比如为AI助手赋能,或者在你的应用程序与模型之间建立深度集成. 如果您了解或者使 ...

  4. Feign 动态设定服务器名称 与 调用接口

    1. 新增编码器(由于使用了动态的Feign,所以不能像正常使用Feign一样指定configuration配置编码器) import feign.RequestTemplate; import fe ...

  5. MyBatis日志工厂

    目录 日志工厂 标准日志实现 Log4j 使用步骤: 日志工厂 我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率? 如果一个 数据库相关的操作出现了问题,我们可 ...

  6. 【YashanDB数据库】YashanDB如何回收表空间

    确认表空间高水位线,是否有可回收空间. select a.tablespace_name,a.high_water_mark,b.user_bytes,b.total_bytes from (SELE ...

  7. Patlibc———更快捷的更换libc

    起初是为了简化做pwn题目时,来回更换libc的麻烦,为了简化命令,弄了一个小脚本,可以加入到/usr/local/bin中,当作一个快捷指令 这个写在了tools库(git clone https: ...

  8. JSP——简介-快速入门

    JSP 简介       JSP 快速入门       <%@ page contentType="text/html;charset=UTF-8" language=&qu ...

  9. dfs 【XR-2】奇迹——洛谷5440

    问题描述: 现有一个八位数,从左往右分别代表年月日,例如20240919,代表2024年9月19日,现将该八位数蒙住几位数,问填入数字之后有几种情况是的日为质数,月+日为质数,年+月+日为质数 输入: ...

  10. CCF CSP-S 2024 提高组初赛解析

    本解析不提供阅读程序与完善程序题目的代码,如有需要请通过 luogu.com.cn 相关链接 下载 如有谬误烦请指正 答案 AACBB BDABD ACBCD ✓××BC ✓✓✓BCC ✓×✓CAC ...