TIP

这个命令对于学习SQL优化就是重中之重了,详细参数介绍可以看这个

原文链接:https://www.cnblogs.com/tufujie/p/9413852.html

我这里就简单介绍几个常用的,需要关注的地方

# 重点关注字段

# type

能达到ref或者range就说明很不错了,如果是all就说明没走索引

# key

看看实际用到的索引键

# key_len

这个可以协助你判断联合索引是否派上用场了,计算方式跟字符集、是否允许为空有关,可以自行百度一下

# Extra

  1. using index :使用覆盖索引的时候就会出现
  2. using where:在查找使用索引的情况下,需要回表去查询所需的数据
  3. using index condition:查找使用了索引,但是需要回表查询数据
  4. using index & using where:查找使用了索引,但是需要的数据都在索引列中能找到,所以不需要回表查询数据
  5. using temporary:表示MySQL需要使用临时表来存储结果集,常见于排序和分组查询,常见 group by ; order by(耗能多)
  6. using filesort:当Query中包含 order by 操作,而且无法利用索引完成的排序操作称为“文件排序”(耗能多)

# 慢查询日志的开启

vi /etc/my.cnf 
[mysqld]
slow_query_log=1
slow_query_log_file=/var/lib/mysql/localhost-slow.log
# 阈值3秒
long_query_time=3

可以通过Mysql专用的分析工具mysqldumpslow分析一下