EXPLAIN は、MySQL がインデックスを使用して選択ステートメントを処理し、テーブルを結合する方法を示します。より適切なインデックスを選択し、より最適化されたクエリ ステートメントを記述するのに役立ちます。簡単に言えば、その機能はクエリのパフォーマンスを分析することです。 explain キーワードの使い方は非常に簡単で、select クエリ ステートメントの前に置くだけです。 MySQL がインデックスを使用するかどうかを確認するには、タイプを確認するだけです。 all の場合、このクエリ ステートメントはすべての行を走査し、インデックスを使用しないことを意味します。 たとえば、explain select * from company_info where cname like '%小%' と記述します。 select * from company_info where cname like '小%' の説明 次の 1) id 列の数字が大きいほど、先に実行されます。数字が同じ場合は、上から下に実行されます。id 列が null の場合、これは結果セットであり、クエリに使用する必要がないことを意味します。 2) 一般的な select_type 列には次のものがあります。
3) テーブル クエリ テーブル名が表示されます。クエリがエイリアスを使用する場合、エイリアスがここに表示されます。データ テーブルに対する操作が含まれない場合は、null として表示されます。山括弧で囲まれた <derived N> として表示される場合は、これが一時テーブルであることを意味します。その後ろの N は実行プランの ID であり、結果がこのクエリから取得されることを示します。山括弧で囲まれた <union M,N> の場合は、<derived N> と似ており、これも一時テーブルであり、この結果が ID M,N のユニオン クエリの結果セットから取得されたことを示します。 4) タイプ 最良から最悪まで: system、const、eq_ref、ref、fulltext、ref_or_null、unique_subquery、index_subquery、range、index_merge、index、ALL。all を除く他のすべてのタイプはインデックスを使用できます。index_merge を除く他のタイプは 1 つのインデックスのみを使用できます。
5)、可能なキー クエリで使用される可能性のあるすべてのインデックスがここにリストされます 6) キー 実際に使用されているインデックスを照会します。select_type が index_merge の場合、ここには 2 つ以上のインデックスが表示されることがあります。その他の select_types の場合、ここには 1 つのインデックスのみが表示されます。 7) キーの長さ クエリの処理に使用されるインデックスの長さ。単一列インデックスの場合は、インデックス全体の長さが含まれます。複数列インデックスの場合は、クエリですべての列が使用されない可能性があります。使用される列の具体的な数はここで計算されます。使用されない列はここでは計算されません。この列の値に注意し、複数列インデックスの合計長を計算して、すべての列が使用されているかどうかを確認します。 MySQL の ICP 機能で使用されるインデックスはカウントされないことに注意してください。また、key_len は where 条件で使用されるインデックスの長さのみを計算し、インデックスがソートやグループ化に使用されている場合でも、key_len では計算されません。 8) 参照 クエリが定数等値クエリの場合、ここに const が表示されます。結合クエリの場合、駆動テーブルの実行プランには、駆動テーブルの関連フィールドが表示されます。条件で式または関数が使用されている場合、または条件列に内部暗黙的な変換がある場合は、func として表示される場合があります。 9) 行 これは実行プラン内のスキャン行の推定数であり、正確な値ではありません。 10) 追加 この列には多くの情報を表示できます。数十種類ありますが、よく使われるものは次のとおりです。
これら以外にも、クエリデータ辞書ライブラリは多数存在し、実行プラン中に結果を取得できないプロンプトメッセージもいくつか見つかります。 11)、フィルタリング この列は、explain Extended が使用されている場合に表示されます。バージョン 5.7 以降ではこのフィールドがデフォルトで存在するため、explain Extended は不要になりました。このフィールドは、ストレージ エンジンによって返されたデータがサーバー レベルでフィルター処理された後に、クエリを満たすレコード数の比率を示します。これはパーセンテージであり、特定のレコード数ではないことに注意してください。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由
>>: IDEA2020.1.2 Webプロジェクトの作成とTomcatの設定に関する詳細なチュートリアル
目次基本的なHTML構造div とクラス名のショートカット キーを生成するクラス名を持つdiv ID...
第 1 章<br /> Web ページをユーザーにとって使いやすいものにするための最も重...
この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...
Vue - シャトルボックス機能を実装します。効果図は次のようになります。 CS 。移行{ ディスプ...
目次1.ソケットを作成する2. ソケットをバインドする3. 聞き手を作る。聞く4. 接続が受け入れら...
Anaconda は、conda、Python、およびそれらの依存関係など、180 を超える科学パッ...
Linux は iftop を使用してネットワーク カードのトラフィックをリアルタイムで監視します。...
区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...
目次ビジネスロジックデータテーブル構造クエリロジックSQL スクリプトスクリプトの説明ビジネスロジッ...
1.コマンドが見つかりません コマンドが見つかりません2. そのようなファイルまたはディレクトリは...
Neo4j (Nosql の 1 つ) は、高性能なグラフ データベース (分散をサポートしていませ...
Enctype : ブラウザがデータをサーバーに送り返すときに使用するエンコーディングのタイプを指定...
目次1. 時計の新しい使い方1.1. ウォッチの使用構文1.2. 複数の属性値を監視する1.3. 参...
ウェブサイトの解析を高速化するために、動的ページと静的ページを異なるサーバーで解析して、解析速度を向...
mptemp は安全な方法で一時ファイルまたはディレクトリを作成します。このコマンドの適用範囲: R...