2019-08-17第十六講:order by[mysql實戰(zhàn)45講]

1. 全字段排序


? ? 疑問1:? explain 后, 各個字段代表啥意思?

? ? ? ? ? ? 答:? ? ?https://blog.csdn.net/bingguang1993/article/details/98313390


? ? 1.sort_buffer : mysql給每個線程分配一塊內存用于排序


1. using filesort 需要排序
2. 索引city 示意圖

? ? 2.執(zhí)行計劃:?

? ? ? ? ? ? 1.初始化sort_buffer , 放入 name, city , age 三個字段;

? ? ? ? ? ? 2.從索引city 找到第一個滿足city = '杭州'條件的主鍵id ==> 圖中ID_X

? ? ? ? ? ? 3.到主鍵id索引取出整行, 區(qū) name, city , age 三個字段的值, 存入sort_buffer

? ? ? ? ? ? 4.從索引city 取下一個記錄的主鍵id

? ? ? ? ? ? 5.重復 3 , 4 知道city 的值不滿足查詢條件位置.? ==> 圖中ID_Y

? ? ? ? ? ? 6.對sort_buffer中的數(shù)據(jù)按照字段name 做快速排序

? ? ? ? ? ? 7.取快排結果前1000行返回客戶端.?

3.全字段排序

? ?3.參數(shù) sort_buffer_size? ==> 為程序開辟的內存大小

? ? ? ? ? ? 數(shù)據(jù)量 <??sort_buffer_size? ==> 在內存中完成

? ? ? ? ? ? 數(shù)據(jù)量 >?sort_buffer_size? ==> 磁盤臨時文件排序

? ? 4.有方法可以確定排序是否使用了臨時文件:?

4. 全排序的 OPTIMIZER_TRACE

? ? ? ? ? ?1. number_of_tmp_files ==> 使用了幾個臨時文件? ==> 歸并排序

? ? 疑問2 : 為什么 sort_buffer_size 越小,??number_of_tmp_files? 就越大???

????????????????難道 是總數(shù)據(jù)量 /?sort_buffer_size? =?number_of_tmp_files? ??

? ? ? ? ? ?2.examined_rows ==> 檢查行數(shù) ==> 參與排序的行數(shù)

? ? ? ? ? ?3. internal_tmp_disk_storage_engine 設置成 MyISAM (為了避免干擾)

? ? ? ? ? ?4.因為查OPTIMIZER_TRACE 要用到臨時表,如果使用innodb , 把數(shù)據(jù)從臨時表取出來, 會讓 innodb_rows_read 加1

? ? ? ?疑問3 : 什么場景會用到臨時表 ?

? ? ? ?疑問4 : 內存臨時表和磁盤臨時表有什么不同 ?? ?

????????????靈光: 其實臨時表就是臨時文件, 因為表就是以文件形式儲存的.?

2.row id排序?

? ? 1.全字段排序缺點:?

? ? ? ? 1如果查詢要返回的字段很多, sort_buffer中要放的字段太多, 需要很多臨時文件, 性能差.

? ? ? ? 2單行長度太大 , 性能差

? ? 2.max_length_for_sort_data? 如果單行長度大于該值 則使用row id 排序(單位為char)

5. row id 排序

? ? ? ? 3.執(zhí)行計劃:?

? ? ? ? ? ? 1與全字段排序不同點:?

? ? ? ? ? ? ? ? 1.只把 id? ,? name 放入sort_buffer中?

? ? ? ? ? ? ? ? 2. 最后多了一次回表, 取目標name, city , age?

? ? ? ? ? ? 因為需要查詢的字段長度太大,所以使用這個方式. 機智啊!?

6. row id 的OPTIMIZER_TRACE

? ? ? ? ? ? 2. number_of_tmp_files 變成10 , 變小了. 因為每一行 從name ,city ,age 變成了 id , name, 長度小了


3. 全字段排序? VS row id 排序 :?

? ? 1.優(yōu)先選擇全字段排序, 因為少一次回表.?

設計思想: 如果內存夠, 盡量使用內存, 不得已再使用磁盤.?

? ? 2. 使用臨時表的原因是 , 原來的數(shù)據(jù)是無序的.?

? ? ? ? ==> 如果保證從city所以中取出的行, 是按照name排序的. 就不用再排序.?

? ? ? ? ==> 所以可以使用聯(lián)合索引

4更快的方法

????1.聯(lián)合索引

7. 聯(lián)合索引

? ? 執(zhí)行計劃:?

? ? ? ? 1.從索引(city, name)找到第一個滿足 city = ' 杭州'條件的主鍵id

? ? ? ? 2.到主鍵id索引取出整行, 取name, city, age 三個字段的值, 返回

? ? ? ? 3. 從索引 (city, name) 去下一個記錄主鍵id

? ? ? ? 4.重復步驟2, 3 , 直到查到1000條記錄, 或者是不滿足city = '杭州'條件.?

8. 聯(lián)合索引執(zhí)行計劃
9.聯(lián)合索引 explain

? ? 4.覆蓋索引 ==> 性能最高, 但是要權衡索引維護代價

? ? ? ? ==>建立索引(city, name, age)

? ? ? ? 執(zhí)行計劃:?

????????1.從索引(city, name, age)找到第一個滿足 city = ' 杭州'條件的主鍵id,??取name, city, age 三個字段的值, 返回

????????2. 從索引 (city, name, age) 取下一個記錄, 從索引中取出三個值.

? ? ? ? 3.重復步驟2 , 直到查到1000條記錄, 或者是不滿足city = '杭州'條件.?

10. 覆蓋索引執(zhí)行計劃


11. 覆蓋索引expalin
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末黑忱,一起剝皮案震驚了整個濱河市城豁,隨后出現(xiàn)的幾起案子甩鳄,更是在濱河造成了極大的恐慌,老刑警劉巖惶岭,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牺弹,死亡現(xiàn)場離奇詭異湖笨,居然都是意外死亡,警方通過查閱死者的電腦和手機捎谨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涛救,你說我怎么就攤上這事畏邢。” “怎么了检吆?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵舒萎,是天一觀的道長。 經常有香客問我蹭沛,道長臂寝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任摊灭,我火速辦了婚禮咆贬,結果婚禮上,老公的妹妹穿的比我還像新娘帚呼。我一直安慰自己素征,他們只是感情好,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布萝挤。 她就那樣靜靜地躺著御毅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怜珍。 梳的紋絲不亂的頭發(fā)上端蛆,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機與錄音酥泛,去河邊找鬼今豆。 笑死,一個胖子當著我的面吹牛柔袁,可吹牛的內容都是我干的呆躲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼捶索,長吁一口氣:“原來是場噩夢啊……” “哼插掂!你這毒婦竟也來了?” 一聲冷哼從身側響起腥例,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤辅甥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后燎竖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體璃弄,經...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年构回,在試婚紗的時候發(fā)現(xiàn)自己被綠了夏块。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疏咐。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖脐供,靈堂內的尸體忽然破棺而出凳鬓,到底是詐尸還是另有隱情,我是刑警寧澤患民,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布缩举,位于F島的核電站,受9級特大地震影響匹颤,放射性物質發(fā)生泄漏仅孩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一印蓖、第九天 我趴在偏房一處隱蔽的房頂上張望辽慕。 院中可真熱鬧,春花似錦赦肃、人聲如沸溅蛉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽船侧。三九已至,卻和暖如春厅各,著一層夾襖步出監(jiān)牢的瞬間镜撩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工队塘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留袁梗,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓憔古,卻偏偏與公主長得像遮怜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鸿市,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內容