MySQL多表關聯SQL語句調優
阿新 • • 發佈:2018-12-03
本文不涉及複雜的底層資料結構,是通過explain解釋SQL,並根據當前可能出現的情況,來做具體的優化,使百萬級、千萬級資料表關聯查詢第一頁結果能在幾秒內完成(真實業務告警系統優化結果)。希望對您有一定的幫助。
需要優化的查詢:使用explain 出現了Using temporary; 有分頁時出現了Using filesort則表示使用不了索引,需要根據下面的技巧來調整語句 rows過多,或者幾乎是全表的記錄數; key 是 (NULL); possible_keys 出現過多(待選)索引。 1.使用explain語法,對SQL進行解釋,根據其結果進行調優: MySQL 表關聯的演算法是 Nest Loop Join,是通過驅動表的結果集作為迴圈基礎資料,然後一條一條地通過該結果集中的資料作為過濾條件到下一個表中查詢資料,然後合併結果: a.EXPLAIN 結果中,第一行出現的表就是驅動表 b. 對驅動表可以直接排序