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

TABLE_SCHEMA : 数据库名

TABLE_NAME:表名

ENGINE:所使用的存储引擎

TABLES_ROWS:记录数

DATA_LENGTH:数据大小

INDEX_LENGTH:索引大小

其他字段请参考MySQL的手册,我们只需要了解这几个就足够了。

所以要知道一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。

SQL:

SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名'

完整SQL语句:

1、进去指定schema 数据库(存放了其他的数据库的信息)

1 mysql>
use information_schema;
2 Database changed

2、查询所有数据的大小


mysql> select concat(round(sum(DATA_LENGTH/1024/1024), 2), 'MB')
-> as data from TABLES;
+-----------+
| data |
+-----------+
| 6674.48MB |
+-----------+
1 row in set (16.81 sec)





3、查看指定数据库实例的大小,比如说数据库 forexpert

view
source

print?

mysql> select concat(round(sum(DATA_LENGTH/1024/1024), 2), 'MB')
-> as data from TABLES where table_schema='forexpert';
+-----------+
| data |
+-----------+
| 6542.30MB |
+-----------+
1 row in set (7.47 sec)
mysql> select concat(round(sum(DATA_LENGTH/1024/1024), 2), 'MB')
-> as data from TABLES where table_schema='forexpert';
+-----------+
| data |
+-----------+
| 6542.30MB |
+-----------+
1 row in set (7.47 sec)

4、查看指定数据库的表的大小,比如说数据库 forexpert 中的 member 表

mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data
-> from TABLES where table_schema='forexpert'
-> and table_name='member';
+--------+
| data |
+--------+
| 2.52MB |
+--------+
1 row in set (1.88 sec)

转自:http://www.oschina.net/question/12_3673

mysql管理 ------查看 MySQL 数据库中每个表占用的空间大小的更多相关文章

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

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

  2. MySQL查看数据库中所有表占用的空间大小

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

  3. 查询DB中每个表占用的空间大小

    使用如下sql script可以获得每个数据库表所占用的空间大小,单位是KB create table #Data(name varchar(100),row varchar(100),reserve ...

  4. 如何查看MySQL中每张表占用的空间大小

    如题,找到MySQL中的information_schema表,这张表记录了所有数据库中表的信息,主要字段含义如下: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE: ...

  5. 查看MYSQL中数据表占用的空间

    由于数据太大了.所以MYSQL需要瘦身,那前提就是需要知道每个表占用的空间大小. 首先打开指定的数据库: use information_schema; 如果想看指定数据库中的数据表,可以用如下语句: ...

  6. 如何查看SQLServer数据库每个表占用的空间大小?

    如何查看SQLServer数据库每个表占用的空间大小? 创建存储过程: CREATE PROCEDURE [dbo].[sys_viewTableSpace]AS BEGIN SET NOCOUNT ...

  7. mysql和postgresql查询数据库中哪些表包含某个字段

    想知道数据库中哪表含有edu_status字段   mysql> select table_name,column_name from information_schema.columns wh ...

  8. 查看MSSQL数据库每个表占用的空间大小

    需要查看数据库表的大小,查询SQL Server联机从书得到如下语句: sp_spaceused 显示行数.保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间. ...

  9. 查看Sql Server所有表占用的空间大小

    2010-01-26 sp_spaceused可以查看某个表占用的空间,但不能一次查看所有的表.今天研究了一下这个sp,写了下面这个查询: --刷新系统数据dbcc updateusage(0) wi ...

随机推荐

  1. 转:12C CDB and pdb with sql developer

    How to install the 12c DB and use the Pluggable DB with SQL DeveloperGoal To give a path to install ...

  2. 【最短路】 poj 2387

    #include <iostream> #include <stdlib.h> #include <limits.h> #include <string.h& ...

  3. cakephp 复杂查询

    $now = time(); $this->CardTypeInfos->recursive = -1; $conditions = [ 'seller_id'=>SELLER_ID ...

  4. PHP生成静态页面详解

    PHP生成静态页面详解 看到很多朋友在各个地方发帖问PHP生成静态文章系统的方法,以前曾做过这样一个系统,遂谈些看法,以供各位参考.好了,我们先回顾一些基本的概念. 一,PHP脚本与动态页面. PHP ...

  5. linux内核移植到S5pv210

    make s5pv210_defconfig 1.System Type  ---> (0) S3C UART to use for low-level messages 2.Kernel ha ...

  6. github入门操作

    一.更新github上的已有项目: 将repository clone到本地 shanyu@debian:~/Git$ git clone https://github.com/xunbu7/Hell ...

  7. css 8.1

    1. border-collapse 属性设置是否将表格边框折叠为单一边框: table { border-collapse:collapse;  } 如果没有规定 !DOCTYPE,border-c ...

  8. POJ - 3062 Borg Maze

    题目链接:http://poj.org/problem?id=3026 Svenskt Masterskap我程序员/ Norgesmesterskapet 2001 Description The ...

  9. WiresShark 使用方法

    Wireshark(前称Ethereal)是一款功能强大的网络抓包分析工具,在我的工作中是不可或缺的一部分工具,往往在网络出现异常时,查看网络中的数据包,会豁然开朗.1.菜单栏  主菜单包括以下几个项 ...

  10. tps,qps

    http://blog.itpub.net/22664653/viewspace-767265/