mysql查询优化的方法有很多种,explain是工作当中用的比较多的一种检查方式。explain翻译即解释,就是看mysql语句的查询解释计划,从解释计划我们能很清楚的看到解释的语句有没有合理用到索引,扫描了多少行数,有没有触及全表扫描、用到临时表等影响慢查询的原因。
使用很简单,如
explain select * from user ...
执行后会出现解释计划的表格,意义可参考下面的参数,针对这些解释计划,我们可以作为相对应的优化。
id mysql查询标识符,即序号。
select_type 查询类型
table 所有查询到的表。
type 联接类型,比较重要的项,从这一项可以看出是否高效的重要依据
性能从好到坏依次如下:
possible_keys 可能用到的索引。
key 真正用到的索引。
key_len 使用了索引字节的长度。
ref 显示索引的哪一列被使用了。
rows 扫描了多少行数,也是性能评估的重要依据。
extra 额度信息,常见的有以下几种。
具体的对执行计划解释可以参考msyql官网:
https://dev.mysql.com/doc/refman/5.7/en/explain-output.html
扩展 另外,mysql5.6增加了对insert/update/delete的explain支持,用法一样。