如何使用
開發運維過程中,經常碰到SQL執行慢的情況,這時候可以通過Explain命令查看執行計劃,根據執行計劃分析問題進而優化SQL。
Explain用法其實不難,只需要在SQL語句前加上該關鍵字即可,例如explain select * from user,示例結果如圖:
Explain可以用在insert、update、delete、select語句上,通常我們更關注select的使用情況。
字段詳情
Explain使用起來簡單,但是想要弄懂每個字段的含義和類型卻是不太容易,我們需要弄懂每個字段的含義和取值類型,才能清楚的找到需要優化的地方。
執行計劃查詢結果的字段說明:
以上字段中有幾個重點關注字段,說明如下:
1)id 查詢標識符:
執行順序一般按照id由大到小,如果id相同,則按順序由上至下執行。一般情況下id是正整數,但當存在Union操作時,值可能為NULL。
2)select_type 查詢類型:
3)type 連接類型:
優化目標:越往上性能約好,盡可能使用上面的type類型,避免ALL全表掃描。
總 結
對于需要優化的SQL,我們可以用Explain來查看其執行計劃。在執行計劃中,重點關注type取值,它最能反應出SQL目前的執行效率級別。同時可以結合其他的字段,或者分解每個環節語句,來做更細致的分析。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129542.html
摘要:如果語句中使用了子查詢集合操作臨時表等情況,會給列帶來很大的復雜性。會遞歸執行這些子查詢,把結果放在臨時表里。查詢優化器從中所選擇使用的索引。該字段顯示了查詢優化器通過系統收集的統計信息估算出來的結果集記錄條數。 引言 優化SQL,是DBA常見的工作之一。如何高效、快速地優化一條語句,是每個DBA經常要面對的一個問題。在日常的優化工作中,我發現有很多操作是在優化過程中必不可少的步驟。然...
摘要:如果該列是,則沒有相關的索引。要想強制使用或忽視列中的索引,在查詢中使用或者。這個值強調了語句會導致沒有符合條件的行。 寫一下Explain記錄一下 簡單粗暴的記錄一下,日常使用Explain是為了查看目標SQL是不是用到了索引,也就是索引的使用情況,但是,沒寫這篇文章之前我使用Explain全靠猜,寫這個的目的也是自己整理學習一下,ok,步入正題 使用場景一般就是這種: 在查詢語句之...
閱讀 1347·2023-01-11 13:20
閱讀 1685·2023-01-11 13:20
閱讀 1133·2023-01-11 13:20
閱讀 1860·2023-01-11 13:20
閱讀 4101·2023-01-11 13:20
閱讀 2705·2023-01-11 13:20
閱讀 1386·2023-01-11 13:20
閱讀 3599·2023-01-11 13:20