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の設定に関する詳細なチュートリアル
この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...
mysql の存在する例と存在しない例の詳細な説明テーブルA |列1 | 列1 | 列3 |テーブル...
macにbrewを使ってphp56をインストールしたところ、 opensslがバージョン1.1だった...
ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...
1. VMware 15.5から新しい仮想マシンを作成する1. VMware を開き、ホームページで...
結果: コードロジックを実装するのが主な部分であり、具体的なページ構造を一つ一つ紹介することはありま...
目次1つ。環境二。予防三つ。例Zabbix トリガーがしきい値に達すると、アラート メッセージの送信...
最近、会社でアプリを開発する準備をしており、最終的に開発には uni-app フレームワークを使用す...
一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われています。これは HTML 言...
目次1. ユニットテストはなぜ必要なのでしょうか? 2. ユニットテストの書き方3. テストツール4...
動作環境: MAC Docker バージョン: Docker version 17.12.0-ce,...
MySQL ドキュメントでは、MySQL 変数はシステム変数とユーザー変数の 2 つのカテゴリに分類...
目次1. 計算プロパティ構文: 1. 省略形:文法: 2. 文章を完成させる: 2. モニタリング(...
目次chmod例権限に関する特別な注意分析するチョーンchgrp umask Linux オペレーテ...
目次前提条件テストページの設定書き換えルールの作成命名規則モードの定義アクションの定義設定ファイル内...