クエリー実行プラン
注意:真実mysql
SQLパーティション->Pastry 行動計画 を制定する運転 EXPLAINキーを使用します.
SELECT文のみ
実行プランに表示される結果が多いほど、OUTERテーブル(先にアクセスしたテーブル)
単位SELECTクエリーごとの識別子
単位SELECTクエリーのタイプを示す列.
SIMPLE
簡単なSELECT検索
PRIMARY
UNIONまたはサブクエリを含むクエリの一番外側のクエリがPRIMARYとして表示されます
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
表全体をスキャンします.最も非効率的な方法.
大容量データベースのもう一つの物語?
実行プランのファイバマネージャで使用されるインデックスのリストを作成するための候補メソッドとして選択します.
実行計画で実際に使用されているインデックス
Equal比較の条件はどのような色が提供されているかです
比較条件として候補鍵レベルを使用する場合はconstとマークされる場合があります.
実行プランで予測される単位クエリーごとにディスクから読み込むレコードの数.
ディスク読み取りなので、ストレージエンジンのエリア
各ステップはMySQLエンジンによってフィルタされ、残りの割合が記録されます.
実際の値ではなく統計からの予測値.
クエリーの実行後の利点をログのように提示します.
クエリーのパフォーマンスに関する多くの情報は非常に重要です.
主な処理方法
インデックスが使用可能な場合、
インデックス・ソート の使用インデックスが使用できない場合
a.ドライバテーブルのみをソートする(filesortを使用)
b.テンポラリ・テーブルによるソート
クエリー実行プロセス
計画分析の実行
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.テンポラリ・テーブルによるソート
テーブル結合
Reference
この問題について(クエリー実行プラン), 我々は、より多くの情報をここで見つけました https://velog.io/@g00dluckroon/쿼리-실행-계획テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol