mysql查看比较大的数据表_如何查询mysql数据库中哪些表的数据量最大?

数据库中有几十上百张表,那么哪些表的数据量比较大呢,总不能一个表一个表的去查询吧,在mysql中也有类似于oracle的数据字典表,只不过mysql没有oracle记录的那么多和详细,但也足够我们查询这些信息了。

在mysql的information_schema下有存储数据库基本信息的数据字典表,可以通过查询tables表来获得所需要的表相关信息。

mysql> show databases;

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

| Database           |

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

| information_schema |

|mysql             |

|report            |

| report_result      |

|test              |

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

5 rows in set (0.02 sec)

mysql> use information_schema;

Database changed

mysql> show tables;

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

|Tables_in_information_schema         |

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

|CHARACTER_SETS                       |

|COLLATIONS                           |

| COLLATION_CHARACTER_SET_APPLICABILITY |

|COLUMNS                              |

|COLUMN_PRIVILEGES                    |

|KEY_COLUMN_USAGE                     |

|PROFILING                            |

|ROUTINES                             |

|SCHEMATA                             |

|SCHEMA_PRIVILEGES                    |

|STATISTICS                           |

|TABLES                               |

|TABLE_CONSTRAINTS                    |

|TABLE_PRIVILEGES                     |

|TRIGGERS                             |

|USER_PRIVILEGES                      |

|VIEWS                                |

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

17 rows in set (0.00 sec)

那么我们查看一下talbes表结构信息,看看存储的具体信息

mysql> desc tables;

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

| Field           |Type         | Null | Key | Default |Extra |

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

| TABLE_CATALOG   | varchar(512) | YES |     | NULL   |       |

| TABLE_SCHEMA    | varchar(64)  | NO  |     |        |       |

| TABLE_NAME      | varchar(64)  | NO  |     |        |       |

| TABLE_TYPE      | varchar(64)  | NO  |     |        |       |

| ENGINE          |varchar(64)  | YES  |     |NULL    |       |

| VERSION         |bigint(21)   | YES  |     |NULL    |       |

| ROW_FORMAT      | varchar(10)  | YES |     | NULL   |       |

| TABLE_ROWS      | bigint(21)   | YES |     | NULL   |       |

| AVG_ROW_LENGTH  | bigint(21)   | YES |     | NULL   |       |

| DATA_LENGTH     | bigint(21)   | YES |     | NULL   |       |

| MAX_DATA_LENGTH | bigint(21)   | YES |     | NULL   |       |

| INDEX_LENGTH    | bigint(21)   | YES |     | NULL   |       |

| DATA_FREE       | bigint(21)   |YES  |     | NULL   |       |

| AUTO_INCREMENT  | bigint(21)   | YES |     | NULL   |       |

| CREATE_TIME     | datetime     |YES  |     | NULL   |       |

| UPDATE_TIME     | datetime     |YES  |     | NULL   |       |

| CHECK_TIME      | datetime     |YES  |     | NULL   |       |

| TABLE_COLLATION | varchar(64)  | YES  |     |NULL    |       |

| CHECKSUM        | bigint(21)   |YES  |     | NULL   |       |

| CREATE_OPTIONS  | varchar(255) | YES  |     |NULL    |       |

| TABLE_COMMENT   | varchar(80)  | NO  |     |        |       |

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

21 rows in set (0.00 sec)

主要存储了表的信息如表使用的引擎,表的类型等信息。我们可以通过查询table_rows属性获得哪些表数据量比较大。

mysql> select table_name,table_rows from  tables order by table_rows desc limi 10;

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

| table_name    |table_rows |

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

| task6        |    1558845 |

| task         |    1554399 |

| task5        |    1539009 |

| task3        |    1532169 |

| task1        |    1531143 |

| task2        |    1531143 |

| task4        |    1521225 |

| task7        |     980865 |

我们继续深入思考,这些存储的数据是否准确,是否真实的反应了表中数据量大小?

mysql> show create table tables \G;

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

Table: TABLES

Create Table: CREATE TEMPORARY TABLE`TABLES` (

`TABLE_CATALOG` varchar(512) default NULL,

`TABLE_SCHEMA` varchar(64) NOT NULL default '',

`TABLE_NAME` varchar(64) NOT NULL default '',

`TABLE_TYPE` varchar(64) NOT NULL default '',

&nb

关键词:mysql

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值