mysql 快速查询所有表的行数 mysql查看所有表行数_database

id:选择标识符

select_type:表示查询的类型。

table:输出结果集的表

partitions:匹配的分区

type:表示表的连接类型

possible_keys:表示查询时,可能使用的索引

key:表示实际使用的索引

key_len:索引字段的长度

ref:列与索引的比较

rows:扫描出的行数(估算的行数)

filtered:按表条件过滤的行百分比

Extra:执行情况的描述和说明

1.id:select关键字

id如果相同,可以认为是一组,从上往下顺序执行

在所有组中,id值越大,优先级越高,越先执行

关注点:id号每个号码,表示一趟独立的查询, 一个sql的查询趟数越少越好

2.select_type

SIMPLE(简单SELECT,不使用UNION或子查询等)

PRIMARY(子查询中最外层查询,查询中若包含任何复杂的子部分,最外层的select被标记为PRIMARY)

UNION(UNION中的第二个或后面的SELECT语句)

DEPENDENT UNION(UNION中的第二个或后面的SELECT语句,取决于外面的查询)

UNION RESULT(UNION的结果,union语句中第二个select开始后面所有select)

SUBQUERY(子查询中的第一个SELECT,结果不依赖于外部查询)

DEPENDENT SUBQUERY(子查询中的第一个SELECT,依赖于外部查询)

DERIVED(派生表的SELECT, FROM子句的子查询)

 UNCACHEABLE SUBQUERY(一个子查询的结果不能被缓存,必须重新评估外链接的第一行)

3.table   表名

4.type

结果值从最好到最坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge >unique_subquery > index_subquery > range > index > ALL 其中比较重要的几个提取出来(见上图中的蓝色)。SQL 性能优化的目标:至少要达到 range 级别,要求是 ref 级别,最好是 consts级别。(阿里巴巴开发手册要求)

5.possible_keys

索引有哪些

6.key

实际用到的索引

7.key_len

表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度

当前索引字段的长度*(utf8=3,gbk=2,latinl=1)+1(null)+2(变长的字段)

8.ref

这一列显示了在key列记录的索引中,表查找值所用到的列或常量,常见的有:const(常量),字段名(例:film.id)

9.rows

预估的需要读取的记录条数

10. filtered:

某个表经过搜索条件过滤后剩余记录条数的百分比

11.Extra:

一些额外的信息

 更准确的理解MySQL到底将如何执行给定的查询语句


EXPLAIN四种输出格式



这里谈谈EXPLAIN的输出格式。EXPLAIN可以输出四种格式: 传统格式 , JSON格式 , TREE格式 以及 可



视化输出 。用户可以根据需要选择适用于自己的格式。





EXPLAIN FORMAT=JSON SELECT ....

EXPLAIN FORMAT=tree SELECT ....



SHOW WARNINGS\G           # 查看sql执行的语句