MySQL索引優化分析(四)

2021-10-07 22:26:57 字數 784 閱讀 6051

1.order by子句,盡量使用index方式排序,避免使用filesort方式排序

a. mysql支援兩種方式的排序,filesort和index,index效率高:它指mysql掃瞄索引本身完成排序。filesort效率低。

b. order by 滿足兩種情況,會使用index方式排序:1,order by 語句使用索引最左前列;2,使用where子句和order by子句條件列組合滿足索引最左前列

2.盡可能在索引列上完成排序操作,遵照索引建的最佳左字首

3.如果不再索引列上,filesort有兩種演算法:mysql就會啟動雙路排序和單路排序

a. 雙路排序:

a.1: mysql4.1 之前是使用雙路排序,意思就是兩次掃瞄磁碟,最終得到資料,讀取行指標和order by 列,對他們進行排序,然後掃瞄已經排序好的列表,按照列表種的值重新從列表中讀取對應資料的輸出。

a.2: 從磁碟取排序字段,在buffer進行排序,再從磁碟取其他字段

b.單路排序:從磁碟讀取查詢需要的所有列,按照order by 列在buffer對他們進行排序,然後掃瞄排序後的列表進行輸出,它的效率更快一些,避免了第二次讀取資料。並且把隨機io變成了順序io,但是他會使用更多空間,因為它把每一行都儲存到記憶體中了。

c.單路引申出的問題:1.由於單路是後出的,總體而言是好過雙路的 2.但單路也是存在問題的。

4.對單路的問題優化策略。

a.增大sort_buffer_size引數的設定

b.增大max_length_for_sort_data引數的設定

c.為什麼?(待查)

MySQL索引優化分析

1.通過訂單號查詢某個訂單,用唯一索引 資料量幾百萬以上 2.order by 排序時,後面欄位加 強制指定索引 select from orderforce index idx ordere order by order level,input date 哪些情況需要建索引 1 主鍵,唯一索引 2...

mysql高階 索引優化分析

2 效能分析 explain 3 索引優化 筆記於學習尚矽谷課程所作 慢查詢的開啟並捕獲 explain 慢sql分析 showprofile查詢sql在mysq1伺服器裡面的執行細節和生命週期情況 sql資料庫伺服器的引數調優。mysql官方對索引的定義為 索引 index 是幫助mysql高效獲...

MySQL高階 索引優化分析

二.效能分析 4 explain欄位解釋 select type 5 explain欄位解釋 table 6 explain欄位解釋 type 7 explain欄位解釋 possible keys 8 explain欄位解釋 key 9 explain欄位解釋 key len 10 explain...