Useing where

使用了 where 作为条件过滤数据;

特别注意:

1、不使用where条件过滤数据,对于这类SQL需要进行优化

2、使用了where,要配合type(连接类型)来综合判断,如果type是all,那么还是全表扫描,有优化空间

常见的是在where条件上加索引

Using index

说明SQL所需要返回的数据均在一颗索引树上,无需访问实际的行记录。
这类SQL往往性能较好。

Using index condition

命中了索引,但不是所有列数据都在索引上,还需要访问实际的行记录。性能也较高,但不如Using index

Using filesort

Extra 为Using filesort 说明所得到的结果集,需要对所有记录进行文件排序。
这类SQL性能极差,需要进行优化。

典型的是在一个没有建立索引的列上进行了order by ,就会触发filesort,常见的优化方案是:在order by 的列上添加索引,避免每次查询都全量排序。

Using temporary

Extra 为Using temporary 需要建立临时表(temporary table)来缓存中间结果,这类SQL性能也较低,往往需要优化。
典型的是,group by 和 order by 同时存在,并且作用于不同的字段,就会建立临时表,以便计算出最终的结果集。

Using join buffer(Block Nested Loop)

说明需要进行循环计算。性能较低,需要进行优化。
典型的,两个关联表join,关联字段均为建立索引,就会出现这种情况,常见的优化方案是,在关联字段建立索引,避免每次都嵌套循环计算。