排序分組優化
阿新 • • 發佈:2020-07-25
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.