什么是MySQL的执行计划(Explain关键字)?( 四 )
1. 跟存储的数据有关
2. 在大于条件下 , 如果条件数据小于列数据 , 则索引无效;如果条件数据大于列数据 , 则索引有效;
在设计查询条件时 , 请注意规避 。
针对第一个例子 , 可以采用覆盖索引的方式优化 。
实例四:explain select * from t_demo where c1='d1'and c2='d2' order by c3;
文章插图
explain select * from t_demo where c1='d1'order by c3;
文章插图
explain select * from t_demo where c1='d1'and c3='d3' order by c2;
文章插图
order by排序使用到索引和没使用到索引的情况
实例五:explain select * from t_demo where c1='d1'and c4='d4' order by c1,c2;
文章插图
条件列包含没有索引的列 , 出现了Using filesort
实例六:explain select * from t_demo where c1='d1'and c4='d4' group by c1,c2;
文章插图
性能非常差的场景 , 同时出现了Using temporary和Using filesort
总结1. 两种方式的排序filesort和index , Usingindex是指MySQL扫描索引本身完成排序 。 index效率高 , filesort效率低 。
2. order by满足两种情况会使用Using index 。
【什么是MySQL的执行计划(Explain关键字)?】1)order by语句使用索引最左前列 。
2)使用where子句与order by子句条件列组合满足索引最左前列 。
3. 尽量在索引列上完成排序 , 遵循索引建立(索引创建的顺序)时的最佳左前缀法则 。
4. group by与order by很类似 , 都是先排序后分组 , 遵照索引创建顺序的最佳左前缀法则 。
- 看不上|为什么还有用户看不上华为Mate40系列来看看内行人怎么说
- 麒麟|荣耀新款,麒麟810+4800万超清像素,你还在犹豫什么呢?
- 对手|一加9Pro全面曝光,或是小米11最大对手
- 行业|现在行业内客服托管费用是怎么算的
- 王兴称美团优选目前重点是建设核心能力;苏宁旗下云网万店融资60亿元;阿里小米拟增资居然之家|8点1氪 | 美团
- 手机基带|为了5G降低4G网速?中国移动回应来了:罪魁祸首不是运营商
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 互联网|苏宁跳出“零售商”重组互联网平台业务 融资60亿只是第一步
- 体验|闭上眼睛点外卖是什么感觉?时隔一年再次体验,进步令人欣慰
- 再次|华为Mate40Pro干瞪眼?P50再次曝光,这次是真香!