Mysql的Explain主要的参数

首先需要注意:MYSQL 5.6.3以前只能EXPLAIN SELECT; MYSQL5.6.3以后就可以EXPLAIN SELECT,UPDATE,DELETE。

关键参数一:type。显示访问使用了何种类型。效率是依次增高。

1.all:代表全表扫描。一般情况下,出现这样的sql语句时,而且数据量比较大,就要对sql进行一定的优化,性能最差。

2.index:查询的字段上就有索引。又叫索引全表扫描,把索引从头到尾扫一遍。

3.range:索引范围查询。常见于使用 =, <>, >, >=, <, <=, IS NULL, <=>, BETWEEN, IN()或者like等运算符的查询中。

4.ref:命中非唯一索引。ref可用于使用’=‘或’<=>'操作符作比较的索引列。

5.const:命中主键索引或者唯一索引。这种情况下,只会有一条数据。

关键参数二:key。

null:代表没有命中索引。

显示索引的名称(如表中显示的person_id):代表命中索引。

关键参数三:rows。

估算出所需数据需要读取的具体行数(不是精确值),直接反应sql找了多少数据,非常直观显示 sql的效率好坏。在完成目的的情况下,原则上是越少越好。

关键参数四:extra。sql的额外信息。

1.distinct:代表在select部分使用了distinc关键字。

2.using  filesrt:代表排序并没有用到索引。

3.using  temporary:代表查询时创建了临时表。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容