mysql数据库索引大小_MySQL查看数据库大小、表大小和索引大小的方式

说明:

通过MySQL的 information_schema 数据库,可查询数据库中每个表占用的空间、表记录的行数;该库中有一个 TABLES 表,这个表主要字段分别是:

TABLE_SCHEMA : 数据库名

TABLE_NAME:表名

ENGINE:所使用的存储引擎

TABLES_ROWS:记录数

DATA_LENGTH:数据大小

INDEX_LENGTH:索引大小

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

查看所有库的大小

mysql> use information_schema;

Database changed

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

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

| data |

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

| 104.21MB |

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

row in set (0.11 sec)

查看指定库的大小

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

+---------+

| data |

+---------+

| 26.17MB |

+---------+

row in set (0.01 sec)

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

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

+--------+

| data |

+--------+

| 0.02MB |

+--------+

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 = 'jishi';

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

| Total Index Size |

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

| 0.94 MB |

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

row in set (0.01 sec)

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

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

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

| Total Index Size |

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

| 21.84 MB |

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

row in set (0.00 sec)

mysql> show create table test.a_yuser\G;

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

Table: a_yuser

Create Table: CREATE TABLE `a_yuser` (

`email` varchar(60) NOT NULL DEFAULT '',

`user_name` varchar(60) NOT NULL DEFAULT '',

KEY `cc` (`email`(5)),

KEY `ccb` (`user_name`(5)),

KEY `ccbc` (`email`(5),`user_name`(5))

) ENGINE=MyISAM DEFAULT CHARSET=utf8

row in set (0.00 sec)

ERROR:

No query specified

mysql> select count(*) from test.a_yuser;

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

| count(*) |

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

| 1073607 |

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

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 'test';

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

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

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

| test.a_br | 0.4625M | 0.0259G | 0.0171G | 0.0431G |

| test.a_skuclr | 0.7099M | 0.0660G | 0.0259G | 0.0919G |

| test.a_yuser | 1.0736M | 0.0497G | 0.0213G | 0.0710G |

| test.test | 0.0000M | 0.0000G | 0.0000G | 0.0000G |

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

rows in set (0.13 sec)

记录下查询的方法,不记得了可以直接翻出来查看。

参考网址:https://www.cnblogs.com/lukcyjane/p/3849354.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值