码迷,mamicode.com
首页 > 编程语言 > 详细

排序分组优化

时间:2020-07-25 23:51:41      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:group   esc   排序   family   mysq   loading   http   sql   使用   

1.说明

  在使用order by时,经常会出现Using fileSort

  在使用group by时,使用不当,会出现Using temporay

 

二:排序

1..Using fileSort

  说明会对数据使用一个外部的索引排序

  而不是内部的索引顺序进行

  mysql无法利用索引完成排序操作称为文件排序

  

1.索引使用情况

explain
select * from employee where name = ‘鲁班‘ and dep_id = 1 order by  age;

  效果:

  技术图片

 

 

explain
select name,dep_id,age from employee order by  name,dep_id,age;

  技术图片

 

 

explain
select * from employee order by  name,dep_id,age;

  技术图片

 

 

explain
select name,dep_id,age from employee order by  name,age;

  技术图片

 

 

explain
select * from employee where name = ‘鲁班‘ order by  dep_id,age;

  技术图片

 

 

explain
select name,dep_id,age from employee where name = ‘鲁班‘ order by  dep_id,age;

  技术图片

 

 

explain
select name,dep_id,age from employee where name = ‘鲁班‘ and dep_id > 1 order by age;

  技术图片

 

explain
select name,dep_id,age from employee where name = ‘鲁班‘  order by age,dep_id;

  技术图片

 

 

explain
select name,dep_id,age from employee where name = ‘鲁班‘  order by dep_id asc, age desc;

  技术图片

 

 

  结论:

  使用覆盖索引,同时order by符合索引顺序。也不能一升一降。

 

 

三:分组

1.说明

  分组前必排序

 

2.

 

排序分组优化

标签:group   esc   排序   family   mysq   loading   http   sql   使用   

原文地址:https://www.cnblogs.com/juncaoit/p/13376171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!