绿色资源网

电脑版
提示:原网页已由神马搜索转码, 内容由www.downcc.com提供.
您的位置:首页数据库类MySQL→ 如何查询mysql数据库中哪些表的数据量最大?

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

我要评论2012/08/03 17:02:19 来源:绿色资源网编辑:downcc.com 评论:0点击:1715次

数据库中有几十上百张表,那么哪些表的数据量比较大呢,总不能一个表一个表的去查询吧,在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

  • 38

  • 1

  • 1

  • 1

  • 1

用户评论

热门评论

最新评论

发表评论查看所有评论(0)

昵称:
请不要评论无意义或脏话,我们所有评论会有人工审核.
字数: 0/500(您的评论需要经过审核才能显示)

相关软件

热点图文

更多+

精品软件