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

`ENGINE` varchar(64) default NULL,

`VERSION` bigint(21) default NULL,

`ROW_FORMAT` varchar(10) default NULL,

`TABLE_ROWS` bigint(21) default NULL,

`AVG_ROW_LENGTH` bigint(21) default NULL,

`DATA_LENGTH` bigint(21) default NULL,

`MAX_DATA_LENGTH` bigint(21) default NULL,

`INDEX_LENGTH` bigint(21) default NULL,

`DATA_FREE` bigint(21) default NULL,

`AUTO_INCREMENT` bigint(21) default NULL,

`CREATE_TIME` datetime default NULL,

`UPDATE_TIME` datetime default NULL,

`CHECK_TIME` datetime default NULL,

`TABLE_COLLATION` varchar(64) default NULL,

`CHECKSUM` bigint(21) default NULL,

`CREATE_OPTIONS` varchar(255) default NULL,

`TABLE_COMMENT` varchar(80) NOT NULL default ''

)ENGINE=MEMORYDEFAULTCHARSET=utf8

看到上面红色的字体了吧,information_schema下的表tables是内存表,数据库启动的时候,会读取分析各表中数据,然后填充tables表。如果某些表更新频繁,而来不及更新tables表的时候,tables中存储的数据就不一定准确了,这会影响到执行计划的分析,索引在执行计划的时候,可以analyze表,然后确保存储的信息准确。

mysql查看比较大的数据表_mysql 如何查看哪些表数据量比较大相关推荐

  1. mysql插入多行数据来自另一张表_mysql从一张表查询批量数据并插入到另一表中的完整实例...

    说在前面 nodejs 读取数据库是一个异步操作,所以在数据库还未读取到数据之前,就会继续往下执行代码. 最近写东西时,需要对数据库进行批量数据的查询后,insert到另一表中. 说到批量操作,让人最 ...

  2. mysql怎么查看自己建的表_mysql怎么查看已建的表

    mysql查看已建数据表的方法:使用SHOW CREATE TABELE查看数据表,SHOW CREATE TABLE语句不仅可以查看创建表时的定义语句,还可以査看表的字符编,代码为[SHOW CRE ...

  3. mysql中删除标识列的语句_MySQL中一些常用的数据表操作语句笔记

    0.创建表 CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件]) "完整性约束条件&quo ...

  4. mysql查询3个表_mysql如何实现多表查询,三个数据表的联合查询?

    在mysql查询语句中,为了实现查询到某些信息,我们会用到多表的联合查询.那么如何去实现三表的联合查询呢?下面我给大家举一个例子,现在 我这里有三个表,一个是文件表wenjian,一个是管理角色表ad ...

  5. 创建mysql数据库 表_MySQL:创建数据库和数据表操作

    1.使用SQL创建数据库,数据库名:studentDB,如果数据库studentDB已存在,那么,先删除再创建. DROP DATABASE IF EXISTS StudentDB ;-----如果存 ...

  6. mysql 分表_MySQL如何分库分表

    数据库分库分表估计很多伙伴都没有实践过,就是因为自己公司的业务不是很多,没有那么多数据.假如有一天项目的人数上来了,你写的系统支撑不住了,希望这篇文章带给你一丝丝的思路." 前言 在面试过程 ...

  7. mysql查询添加数据库表_MySQL数据库篇之表的增删改查

    主要内容: 一.表介绍 二.创建表 三.查看表结构 四.修改表结构 五.复制表 六.删除表 1️⃣ 表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称 ...

  8. mysql用命令行创建表_mysql命令行创建表

    命令来查看表中的数据的变化: mysql>select*from students; 7.用文本方式将数据装入一个数据库表: 创建一个文本文件"student.sql",每行 ...

  9. mysql 表字段信息从一张表迁移到另一张表_Mysql之分库分表

    互联网系统需要处理大量用户的请求.比如微信日活用户破10亿,海量的用户每天产生海量的数量:美团外卖,每天都是几千万的订单,那这些系统的用户表.订单表.交易流水表等是如何处理呢? 数据量只增不减,历史数 ...

最新文章

  1. docker 修改镜像地址
  2. R语言:计算各种距离
  3. 网址服务器地址修改,网址服务器地址修改
  4. VB.NET完成一个功能增强的记事本
  5. 数据分析体系构建那点事!
  6. 数据/方法论固然重要,但人为分析更有价值!
  7. SAM4E单片机之旅——11、UART之PDC收发
  8. Scikit-learn_聚类算法_K均值聚类
  9. puppet的使用:ERB模板
  10. 计算机里没有四款小游戏,90后最爱玩的4款“4399”小游戏,一个都没玩过的太可怜!...
  11. 文献笔记04-大学生运动会报名系统的设计与研究
  12. 小狗钱钱 的读书笔记
  13. 迭代次数和熵之间关系的一点联想
  14. pytorch中的一维数组,是列向量还是行向量?
  15. python series转置储存到excel_P9:pythonpandas玩转excel文件
  16. 简介 Tagged Pointer (标记指针)
  17. springboot车辆管理系统的设计与实现毕业设计源码031034
  18. 京东css3动画全屏海报_京东店铺装修安装全屏CSS3动态缩放效果海报,活动海报上添加透明素材自动缩放 ......
  19. 青岛abb焊接机器人编程招聘_ABB机器人焊接编程程序详细介绍
  20. 散光眼的症状有哪些?

热门文章

  1. 基于单片机的调光控制器设计
  2. wifi网络结构(上)
  3. SNMP功能开发简介 五 使用MIB Builder创建MIB文件图文介绍
  4. docker 推送到本地仓库_Docker_学习笔记系列之仓库
  5. 列联表分析程序,以卢淑华书上的例子为例
  6. pandas读取剪切板
  7. 发送结构化的网络消息
  8. MySQL中的char和varchar类型
  9. SQLServer服务的运行与登录
  10. 计算机控制综合应用题,计算机网络管理综合应用题