你也真的 不知道的排序與分組優化,你品,你細品?

2021-10-05 23:18:53 字數 1502 閱讀 6519

目錄

1.在使用order by時,經常出現using filesort

1.1索引做為排序時:

1.2使用order by排序時, 如果沒有按照索引順序,會出現using filesort

1.3當使用*時 order by即使使用了 全部索引,也會也filesort

1.4當索引欄位為常量時 可以當作是存在索引的

1.5使用排序一公升一降會造成filesort

2.使用group by時,使用不當, 會出現using temporary

只用到了 name和age    salary是作為排序,而不是查詢

explain

select * from employees where name = '李白1' and age = 10 order by salary ;

explain

select * from employees where name = '李白1' order by salary,age,name ;

explain

select * from employees order by name,age,salary;

explain

select * from employees where name = '李白1' order by age,salary;

explain

select * from employees where name = '李白1' and age = 10 order by salary;

explain

select * from employees where name = '李白1' order by age desc ,salary asc ;

解決辦法和排序一樣, 都要按索引順序進行分組

##錯誤

explain

select name from employees where name = '李白1' group by salary;

##正解

explain

select name from employees where name = '李白1' group by name,age,salary;

錯誤:

正解:

你不知道的MySQL排序

想必大家都知道在mysql中,使用order by 對某一欄位進行asc 預設 正序 或desc 倒序 排序。但是很多的時候所要排序的字段是沒有規則的,那該要如何排序呢?select from t user order by age desc 先根據年齡排序,如果年齡相同的再按建立時間排序selec...

你所不知道的氣泡排序

說到排序,耳熟能詳,手寫 都可以很順溜的氣泡排序。但是追究氣泡排序的優化的時候,那麼估計就有很多人懵逼了。下面介紹幾種冒泡的幾個優化點吧。有這麼乙個數列 int number1 常規的寫法 這種冒泡寫法,一直要到每一輪的每一次對比完成後,迴圈才會結束,顯然這樣的寫法效率比較低,而且某些時候數列有一部...

你不知道的 和

開發中,編寫有一定逼格的 是每個程式猿都追求的。經常用來判斷的符號 和 也經常用來定義變數哦,你知道嗎?邏輯與 在有乙個運算元不是布林值的情況下,就不一定返回布林值。比如以下情況 1 第乙個運算元是物件,返回第二個數 var myinfo console.log myinfo 2 輸出22 第二個運...