1. 程式人生 > 實用技巧 >排序分組優化

排序分組優化

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.