用户可以通过Explain判断语句是否已最优,其中Type与Extra的主要类型与含义如下: ·Type 1)ALL:Full Table Scan 全表扫描; 2)index: Full Index Scan,索引扫描; 3)range:范围扫描; 4)ref: 表示连接匹配条件; 5)eq_ref: 类似ref,区别就在使用的索引是唯一索引; 6)const: 常量查询,比如pk等值; 7)system是Const类型的特例;当查询的表只有一行的情况下,使用system。 从性能角度来看,从上往下性能越来越高,根据《开发手册》,此处最低要求是到Range范围扫描。 ·Extra 1)Using filesort 排序; 2)Using index 使用索引可以返回请求列; 3)Using index condition 通过索引初步过滤;回表再过滤其它条件; 4)Using temporary 临时表; 5)Using where 单独出现时;一般代表表上出现全表扫描过滤; 6)Using index & Using where 使用索引返回数据;同时通过索引过滤。 Extra反映了执行计划的真实执行情况。 结合上图执行计划分析,C表是外部驱动表,索引方式为idx_pk,Type是Range,Extra有Using index condition、Using where以及Using MRR,表示进行全表扫描,通过索引初步过滤,回表B再过滤其他条件。B表是从外表取数据做内循环,索引方式为i_text,扫描的列为c.b.KeyNo,这种情况说明这个执行计划相对完善。
答复内容摘自《深入MySQL实战》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1167
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。