explain MySQL

叁歲伎倆 2021-06-24 14:36 541阅读 0赞

explain + sql语句是为了查看当前这条sql语句是否存在优化的可能,也就是说,这条sql语句是否影响性能.

  1. mysql> explain select * from trades_order; +----+-------------+--------------+------+---------------+------+---------+------+------+-------+
  2. | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+------+---------------+------+---------+------+------+-------+
  3. | 1 | SIMPLE | trades_order | ALL | NULL | NULL | NULL | NULL | 511 | | +----+-------------+--------------+------+---------------+------+---------+------+------+-------+
  4. 1 row in set (0.00 sec)
  5. mysql> explain select * from trades_order where id=1; +----+-------------+--------------+-------+---------------+---------+---------+-------+------+-------+
  6. | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+-------+---------------+---------+---------+-------+------+-------+
  7. | 1 | SIMPLE | trades_order | const | PRIMARY | PRIMARY | 4 | const | 1 | | +----+-------------+--------------+-------+---------------+---------+---------+-------+------+-------+
  8. 1 row in set (0.00 sec)

从上面的两个例子中可以看到一些字段.下面我们就分别说说他们的意义.
id:sql语句的序号,不重要
select_type:sql语句的类型,不重要
table:所要查询的表,不重要
type:检索的类型,重要,类型值由优到差的顺序:system->const->eq_ref->ref->ref_or_null->index_merge->unique_subquery->index_subquery->range->index->ALL
possible_keys:可用的索引字段,不重要
key:使用的索引字段,重要
key_len:索引长度,不重要
ref:检索条件涉及的字段,不重要
rows:检索到的行数,不重要
Extra:显示解决查询的详细信息,不重要

所以看一条sql语句的性能,依次查看的指标为:type->key->ref->Extra,这样回头看一下,第一个sql语句的性能是有多糟.

发表评论

表情:
评论列表 (有 0 条评论,541人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySql explain

    执行计划是SQL语句经过查询分析器后得到的 抽象语法树 和 相关表的统计信息 作出的一个查询方案,这个方案是由查询优化器自动分析产生的。由于是动态数据采样统计分析出来的结果,所

    相关 Mysql Explain

    MySQL 优化器根据成本计算使用哪种执行计划运行查询时的成本,从而选择成本最低的查询。由于这是估计值,因此在执行之前无法准确知道确切的成本。 EXPLAIN EXPL

    相关 MySQL EXPLAIN

    MySQL Query Optimizer (查询优化器) MySQL中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求

    相关 explain MySQL

    explain + sql语句是为了查看当前这条sql语句是否存在优化的可能,也就是说,这条sql语句是否影响性能. mysql> explain select f