クエリー実行プラン


注意:真実mysql

クエリー実行プロセス

  • SQLパーティション->Pastry
  • 行動計画
  • を制定する
  • 運転
  • 計画分析の実行

  • EXPLAINキーを使用します.
    SELECT文のみ
    実行プランに表示される結果が多いほど、OUTERテーブル(先にアクセスしたテーブル)
  • 実行計画に表示される列。


    id列


    単位SELECTクエリーごとの識別子

    select type列


    単位SELECTクエリーのタイプを示す列.

  • SIMPLE
    簡単なSELECT検索

  • PRIMARY
    UNIONまたはサブクエリを含むクエリの一番外側のクエリがPRIMARYとして表示されます
  • EXPLAIN
    SELECT pd.id AS productId
    FROM product pd
    WHERE pd.id > (
        SELECT MAX(pd2.id)
        FROM product pd2
        WHERE pd2.category_id = 1
        GROUP BY pd2.category_id
    );

  • SUBQUERY
    WHEREセクションで使用されるサブクエリ(ネストされたクエリとインラインビューを除く)を示します.

  • UNION
    ユニオンのSELECTクエリにマージされた場合、1つ目は除外されます.


  • DERIVED
    サブクエリがFROMセクションで使用される場合(inline view)
    メモリまたはディスクに一時テーブルを作成し、単位SELECTを実行します.
  • タイプ列


    MySQLサーバが各テーブルのレコードをどのように読み込むか(テーブルメソッド)
    性能:system、const、eq ref、ref>range>index>>ALL

  • ていすう
    whereセクションでpkまたは唯一のキー「=」を使用して比較する場合
    つまり、すべてのレコードを読み込む必要がないのは唯一です.
    クエリーを返す必要があります(index unique scan)

  • eq_ref
    結合時に、最初に読み込まれたテーブル列値を次の内部テーブルの候補キー検索条件に使用する場合.

  • ref
    結合時にEqual("=")条件を使用する場合は、refアクセスメソッドを使用します.
    もちろん、Equalと次の表の結合条件を候補キーワード行として比較すると、eq refはになります.
    pkにEqual条件を指定するとconstとして表示されます.

  • range
    <、>、IS NULL、BETWEEN、IN、LIKEなどのインデックス検索に使用
    const、eq ref、refより遅いが十分速い方法

  • index
    インデックスプールをスキャンします.非効率的です.
    逆に,LIMIT条件と併用するとrangeとほぼ同じである.

  • ALL
    表全体をスキャンします.最も非効率的な方法.
    大容量データベースのもう一つの物語?
  • 可能なキー列


    実行プランのファイバマネージャで使用されるインデックスのリストを作成するための候補メソッドとして選択します.

    キー列


    実行計画で実際に使用されているインデックス

    key len列


  • リファレンスポスト


    Equal比較の条件はどのような色が提供されているかです
    比較条件として候補鍵レベルを使用する場合はconstとマークされる場合があります.


    実行プランで予測される単位クエリーごとにディスクから読み込むレコードの数.
    ディスク読み取りなので、ストレージエンジンのエリア

    フィルタバー


    各ステップはMySQLエンジンによってフィルタされ、残りの割合が記録されます.
    実際の値ではなく統計からの予測値.

    Extra Column


    クエリーの実行後の利点をログのように提示します.
    クエリーのパフォーマンスに関する多くの情報は非常に重要です.

    主な処理方法


    ORDER BY(ソート)処理


    運転台が重要だ
    ストリームとバッファ
  • インデックスが使用可能な場合、
    インデックス・ソート
  • の使用
  • インデックスが使用できない場合
    a.ドライバテーブルのみをソートする(filesortを使用)
    b.テンポラリ・テーブルによるソート
  • テーブル結合