通过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. Win32_GDI_绘制文字路径透明窗口

    效果图: 前面字体是个透明窗口 后面是桌面背景 代码实现: void MyMainDialog::TextPathWindow(LPCTSTR lpShowText) { HDC hdc = GetD ...

  2. 默认情况下,CentOS 7上MySQL / MariaDB的存储位置在哪里?

    Where is MySQL / MariaDB storage location by default on CentOS 7? No special configuration to the Ma ...

  3. mysql学习问题记录

    Q: 问题 MySQL在创建外键索引时,使用工具会出现创建完成但是闪一下就没了 使用CONSTRAINT '外键索引名' FOREIGN KEY ('xx') REFERENCES 数据库名 (xx) ...

  4. Maven 打 JAR 包

    项目和依赖分别打入独立 JAR 包 使用 Maven Jar Plugin 插件,可以将项目自身单独打成一个 JAR 包,项目依赖的 JAR 包统一放置到指定目录. 在项目的 pom.xml 中添加如 ...

  5. 如何选择 Linux 发行版

    简介 要建立云服务器,首先需要安装操作系统.在现代环境中,几乎所有情况下都是指 Linux 操作系统.从历史上看,Windows 服务器和其他类型的 Unix 在特定的商业环境中都很流行,但现在几乎每 ...

  6. 关于java连接数据库时提示异常java.sql.SQLException: No suitable driver found for说明

    当我们测试一个新的数据库服务时,需要使用对方提供jdbc驱动来连接数据库,有时候简单的写个demo去连接,发现提示异常: java.sql.SQLException: No suitable driv ...

  7. Android Adapter中组件EditText文本变化监听 addTextChangedListener

    问题背景:使用适配器显示一个列表,列表中Item中有EditText,滚动时会有EditText组件内容消失 步骤: 1. 在Adapter中,添加interface public interface ...

  8. QT原理与源码分析之QT5原理与源码分析视频课程 补天云QT技术培训专家

    QT原理与源码分析之QT5原理与源码分析视频课程 补天云QT技术培训专家 以下是<< QT5原理与源码分析视频课程>>的完整目录. 第1章 准备 第1节 您可以学到什么? 第2 ...

  9. 系统编程-进程-vfork使用、浅析

    1. 先贴代码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> int globvar = 6 ...

  10. BOOST库 将源码作交叉编译 书籍下载

    好记性不如烂笔头,BOOST库的移植,我也记录一下. 1. BOOST库 版本1.66.0 下载地址, 附书籍C++ BOOST库开发指南: https://download.csdn.net/dow ...