MySQL 执行计划(EXPLAIN)背诵版

MySQL 执行计划(EXPLAIN)背诵版 一、先背执行计划怎么用sqlEXPLAIN SELECT * FROM 表 WHERE 条件;只看 6 个字段id、select_type、type、key、rows、Extra这 6 个搞定SQL 优化 90% 搞定。二、核心字段逐字背诵版必考必用1. id执行顺序口诀id 越大越先执行id 相同从上往下执行。id1主查询id1子查询数字越大优先级越高idNULL最后执行结果集计算2. select_type查询类型只背 4 个SIMPLE简单查询最优SUBQUERY子查询性能差DERIVED衍生表 / 临时表性能差UNION联合查询判断出现 SUBQUERY、DERIVED 要优化3.type访问类型SQL 快不快看它背诵优先级从好到坏plaintextsystem const eq_ref ref range index ALL必须背下来的定义const根据主键 / 唯一索引查询1 行结果最优ref普通索引查询性能优秀range范围查询between、in、合格index遍历索引树一般ALL全表扫描必须优化底线标准生产 SQLtype 必须 range禁止 ALL4.key实际使用的索引key NULL没走索引严重问题key 索引名走了索引key_len索引长度越大表示使用索引字段越多越精准5. rows扫描行数口诀越少越好越小 SQL 越快大表 rows 上万 慢查询6.Extra额外信息优化黄金区只背 5 个最关键Using index【最优】覆盖索引不用回表速度极快Using where使用 where 过滤数据正常Using filesort【严重】文件排序必须优化 原因order by 字段无索引Using temporary【严重】使用临时表必须优化 原因group by 无索引Using where; Using index【完美】覆盖索引 条件过滤三、执行计划判断口诀背诵版plaintext一看 type 是不是 ALL是全表要修改 二看 key 是不是 NULL没索引要创建 三看 Extra 两毒瘤filesort、temporary 必须干掉 四看 rows 越少越好超过千行要优化四、3 秒判断 SQL 是否合格背诵版一条好 SQL执行计划必须满足type range不能是 ALLkey 不为 NULL必须走索引Extra 没有 Using filesort / Using temporaryrows 尽量小五、最常见 4 种坏情况 优化方案背诵1. type ALL全表扫描优化给 where 字段加索引2. key NULL索引失效优化索引列别用函数别隐式转换别违反最左前缀3. ExtraUsing filesort文件排序优化给 order by 字段建联合索引4. ExtraUsing temporary临时表优化给 group by 字段建索引六、终极背诵版一句话总结看 type 防全表看 key 看索引看 Extra 杀排序临时表看 rows 看扫描量。总结你把上面内容背熟就能看懂任何 SQL 执行计划快速定位慢 SQL 原因面试直接满分