暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

查看MYSQL表数据大小

后场技术 2021-05-17
432

在MySQL数据库中,有一个内置的database叫做information_schema
, 该数据库中的tables表包含了数据库中所有表的基本信息,tables表结构如下:

mysql> use information_schema;
Database changed
mysql> describe tables;
+-----------------+---------------------+------+-----+---------+-------+
| Field           | Type                | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| TABLE_CATALOG   | varchar(512)        | NO   |     |         |       |
| TABLE_SCHEMA    | varchar(64)         | NO   |     |         |       |
| TABLE_NAME      | varchar(64)         | NO   |     |         |       |
| TABLE_TYPE      | varchar(64)         | NO   |     |         |       |
| ENGINE          | varchar(64)         | YES  |     | NULL    |       |
| VERSION         | bigint(21) unsigned | YES  |     | NULL    |       |
| ROW_FORMAT      | varchar(10)         | YES  |     | NULL    |       |
| TABLE_ROWS      | bigint(21) unsigned | YES  |     | NULL    |       |
| AVG_ROW_LENGTH  | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_LENGTH     | bigint(21) unsigned | YES  |     | NULL    |       |
| MAX_DATA_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
| INDEX_LENGTH    | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_FREE       | bigint(21) unsigned | YES  |     | NULL    |       |
| AUTO_INCREMENT  | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_TIME     | datetime            | YES  |     | NULL    |       |
| UPDATE_TIME     | datetime            | YES  |     | NULL    |       |
| CHECK_TIME      | datetime            | YES  |     | NULL    |       |
| TABLE_COLLATION | varchar(32)         | YES  |     | NULL    |       |
| CHECKSUM        | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_OPTIONS  | varchar(255)        | YES  |     | NULL    |       |
| TABLE_COMMENT   | varchar(2048)       | NO   |     |         |       |
+-----------------+---------------------+------+-----+---------+-------+
21 rows in set (0.03 sec)

下面介绍几个主要关键字段:

  • TABLE_SCHEMA: 表所属的数据库名

  • TABLE_NAME: 表名

  • TABLE_ROWS: 表行数

  • DATA_LENGTH: 数据总大小

  • INDEX_LENGTH: 索引总大小

  • DATA_FREE: 磁盘碎片大小

查看表大小语句示例如下:

mysql> select  table_schema, table_name, concat(truncate(sum(DATA_LENGTH)/1024/1024,2),' MB') as data_size,concat(truncate(sum(DATA_FREE)/1024/1024,2),' MB') as data_free,concat(truncate(sum(INDEX_LENGTH)/1024/1024,2),'MB') as index_size from information_schema.tables  where TABLE_SCHEMA='test' and table_name='alert_message_box';
+--------------+---------------------+-------------+-----------+------------+
| table_schema | table_name          | data_size   | data_free | index_size |
+--------------+---------------------+-------------+-----------+------------+
| test         | alert_message_box | 16462.00 MB | 0.00 MB   | 23287.00MB |
+--------------+---------------------+-------------+-----------+------------+
1 row in set (0.00 sec)

文章转载自后场技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论