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の設定に関する詳細なチュートリアル
JSはショッピングカート内の商品の合計金額を計算して参考とします。具体的な内容は以下のとおりです。質...
目次序文子コンポーネントは親コンポーネントにデータを渡す1. 親コンポーネントから子コンポーネントに...
問題を見つける最近、以前のデータを入力していたときに、プログラムが突然次のエラーを報告しました。 [...
以下のデモはMySQLバージョン5.7.27に基づいています。 1. MySQLサブクエリ最適化戦略...
Linux の操作と構成作業では、デュアル ネットワーク カードのバインディングがよく使用されます。...
ReadOnly 属性を持つ TextBox は、クライアント上で次のマークアップとして表示されます...
目次1. 準備: 2. ソースコードのコンパイル1. 設定する2. コンパイルエラー3. ターゲット...
目次1. 電流制限アルゴリズム2. nginxの基礎知識4. 実戦要約する高並行性システムには、キャ...
データベースの読み取りと書き込みの分離は、トラフィック量の多い大規模システムやインターネット アプリ...
この記事では、MySQL 5.7.21の解凍版をダウンロードしてインストールする詳細な手順を記録して...
序文Linux で最も広く使用されているデータベースは MySQL です。この記事では、Linux ...
本日の記事では、主にNginxのリロードプロセスについて紹介します。実は前回の記事では、nginx ...
目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...
FlashFXPのダウンロードアドレスは、https://www.jb51.net/softs/95...
目次ネットワーク情報ホスト名を変更するDNSドメイン名解決ネットワーク関連コマンドファイアウォール暗...