explain参数之extra
Extra列包含MySQL解决查询的详细信息,有一下几种情况:
- Using where:列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全表请求列都是同一个索引的部分的时候,表示MySQL服务器将在存储引擎检索行后再进行过滤。
- Using temporary:表示MySQL需要使用临时表来存储结果集,常见于排序和分组查询。
- Using filesort:MySQL中无法利用索引完成的排序操作称作“文件排序”
- Using join buffer:该值强调了在获取连接条件时没有使用所有,并且需要连接缓冲区来存储中间结果。如果出现了这个值,那需要注意,根据查询的具体情况可能需要添加索引来优化性能。
- Impossible where:这个值强调了where语句会导致没有符合条件的行。
- Select tables optimized away:这个值意味着仅通过使用索引,优化器可能仅从聚合函数结果中返回一行。
欢迎批评指正,提出问题,谢谢!