mysql explain

mysql> explain select * from siteinfo;

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

| id | select_type | table    | type | possible_keys | key  | key_len | ref  | rows   | Extra |

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

|  1 | SIMPLE      | siteinfo | ALL  | NULL          | NULL | NULL    | NULL | 902310 |       | 

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

只说type

system:

        表仅有一行,这是const连接类型的一个特例

const:

        const用于常数值比较primary key时,单查询的表仅有一行时,使用system

eq_ref:

        除const类型外最好的可能实现的连接类型 它用在一个索引的所有部分被连接使用并且索引是unique或primary key

       对于每一个索引键,表中只用一条记录与之匹配

ref:

       连接不能基于关键字选择单个行,可能查找到多个符合条件的行。叫做ref是因为索引要跟某个参考值相比较。

       这个参考值或者是一个常数,或者是来自一个表里的多表查询的结果值。

ref_or_null:

        如同ref,但是MySQL必须在初次查找的结果里找出null条目,然后进行二次查找。

index_merge:

        说明索引合并优化被使用

unique_subquery: 

        在某些IN查询中使用此种类型,而不是常规的ref: 

        value IN (SELECT primary_key FROM single_table WHERE some_expr) 

index_subquery:

        在某些IN查询中使用此种类型,与unique_subquery类似,但是查询的是非唯一性索引: 

        value IN (SELECT key_column FROM single_table WHERE some_expr) 

range:

        只检索给定范围的行,使用一个索引来选择行。key列显示使用了哪个索引。当使用=、<>、>、>=、<、<=、

        IS NULL、<=>、BETWEEN或者IN操作符,用常量比较关键字列时,可以使用range。

index:

            全表扫描,只是扫描表的时候按照索引次序进行而不是行。主要优点就是避免了排序,但是开销仍然非常大。

all:
     全表扫描

possible key : 可能使用到的索引

key : 实际使用到的索引

       MySQL实际从possible_key选择使用的索引。如果为NULL,则没有使用索引。

       很少的情况下,MYSQL会选择优化不足的索引。

       这种情况下,可以在SELECT语句中使用USE INDEX(indexname)来强制使用一个索引

       或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引

key_len: 索引长度,在不损失精确性的情况下,长度越短越好

ref: 说明索引的哪一列被使用了,

rows: 检索的行数

extra项:

     userfilesort

             表示MySQL会对结果使用一个外部索引排序,而不是从表里按索引次序读到相关内容。

             可能在内存或者磁盘上进行排序。MySQL中无法利用索引完成的排序操作称为“文件排序”。

      using temporary

            表示MySQL在对查询结果排序时使用临时表。常见于排序order by和分组查询group by。

摘自: http://wenku.baidu.com/view/f7335cc8da38376baf1fae5d.html

原文地址:https://www.cnblogs.com/allenhaozi/p/4508418.html