码迷,mamicode.com
首页 > 数据库 > 详细

查询数据库和表的大小

时间:2017-12-24 12:50:18      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:dex   sql数据库   和表的大小   article   索引   参考   concat   自己   form   

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

TABLE_SCHEMA : 数据库名

TABLE_NAME:表名

ENGINE:所使用的存储引擎

TABLES_ROWS:记录数

DATA_LENGTH:数据大小

INDEX_LENGTH:索引大小

这几个字段对我们来说最有用。 一个表占用空间的大小,相当于是 数据大小 + 索引大小,

首先查询所有数据库占用磁盘空间大小的SQL语句如下:

select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2), MB) as data_size,  
concat(truncate(sum(index_length)/1024/1024,2),MB) as index_size  
from information_schema.tables  
group by TABLE_SCHEMA  
order by data_length desc; 

然后是查询单个数据库里面各个表所占磁盘空间大小包括其索引的大小的SQL语句如下:

select TABLE_NAME, concat(truncate(data_length/1024/1024,2), MB) as data_size,  
concat(truncate(index_length/1024/1024,2), MB) as index_size  
from information_schema.tables where TABLE_SCHEMA = TestDB  
group by TABLE_NAME  
order by data_length desc;

 注意将SQL语句中的TestDB换成你自己的数据库名称即可!

要想知道每个数据库的大小的话,步骤如下:

1、进入information_schema 数据库(存放了其他的数据库的信息)

  use information_schema;
2、查询所有数据的大小:

  select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables;

3、查看指定数据库的大小: 比如查看数据库home的大小

  select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables where table_schema=‘home‘;

4、查看指定数据库的某个表的大小 比如查看数据库home中 members 表的大小

  select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables where table_schema=‘home‘ and table_name=‘members‘;

 

参考:

http://blog.csdn.net/wangpanyang/article/details/46005209

http://www.jb51.net/article/39130.htm

http://www.t086.com/article/5167

 

查询数据库和表的大小

标签:dex   sql数据库   和表的大小   article   索引   参考   concat   自己   form   

原文地址:http://www.cnblogs.com/domestique/p/8097597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!