explain コマンドは、クエリ オプティマイザーがクエリの実行を決定した方法を確認する主な方法です。 この機能には制限があり、必ずしも真実を伝えるわけではありませんが、その出力は入手可能な最良の情報であり、クエリがどのように実行されるかを知ることができるため、時間をかけて理解する価値があります。 1. MySQL実行計画とは何か 実行プランをより深く理解するには、MySQL の基本構造とクエリの基本原則について基本的な理解が必要です。 MySQL 自体の機能アーキテクチャは、アプリケーション層、ロジック層、物理層の 3 つの部分に分かれています。MySQL だけでなく、他のほとんどのデータベース製品もこのアーキテクチャに従って分割されています。 アプリケーション層は主に、クライアントとのやり取り、リンクの確立、リンク ステータスの記憶、データの返却、リクエストへの応答を担当します。この層はクライアントを処理します。 ロジック層は、クエリを例にとると、主にクエリ処理、トランザクション管理、およびその他のデータベース機能処理を担当します。 クエリ SQL を受信すると、データベースはすぐにスレッドを割り当てて処理します。最初のステップでは、クエリ プロセッサが SQL クエリを最適化します。最適化後、実行プランが生成され、プラン実行者に渡されて実行されます。 プラン実行者は、データの操作のために下位のトランザクションマネージャとストレージマネージャにアクセスする必要があります。それぞれの分担は異なりますが、最終的には物理層のファイルを呼び出してクエリ構造情報を取得し、最終結果をアプリケーション層に応答します。 物理層は、実際の物理ディスクに保存されているファイル、主にデータ ファイルとログ ファイルを指します。 上記の説明から、実行プランの生成は、SQL ステートメントを実行する上で不可欠なステップであることがわかります。実行プランを表示することで、SQL ステートメントのパフォーマンスを直感的に確認できます。実行プランにはさまざまなクエリ タイプとレベルが用意されており、パフォーマンス分析の基礎として表示して使用できます。 2. 実行計画を分析する方法 MySQL には、SQL ステートメントの実行プランを直感的に表示するための explain キーワードが用意されています。 explain では、MySQL がインデックスを使用して SELECT ステートメントを処理し、テーブルを結合する方法を示します。これにより、より適切なインデックスを選択し、より最適化されたクエリ ステートメントを記述できるようになります。 次に、explain を使用して次のようにクエリを作成します。 mysql> explain select * from payment; +----+-------------+----------+-----------+--------+---------------+-----+--------+--------+--------+--------+--------+ | id | select_type | テーブル | パーティション | タイプ | 可能なキー | キー | キー長 | ref | 行 | フィルター済み | 追加 | +----+-------------+----------+-----------+--------+---------------+-----+--------+--------+--------+--------+--------+ | 1 | SIMPLE | 支払い | NULL | すべて | NULL | NULL | NULL | NULL | 16086 | 100.00 | NULL | +----+-------------+----------+-----------+--------+---------------+-----+--------+--------+--------+--------+--------+ セットに 1 行、警告 1 回 (0.01 秒) クエリ構造には 12 個の列があります。各列の意味を理解することは、実行プランを理解する上で重要です。以下は表形式での説明です。
要約する 上記は、MySql で explain を使用して SQL の実行プランを照会する方法について紹介したものです。お役に立てば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
>>: Docker での Redis のマスタースレーブ構成チュートリアルの詳細説明
「脳が多数の領域間の関係を処理できるように、入力は論理的なグループに分割する必要があります。」 – ...
導入JavaScript はデフォルトでシングルスレッドであるため、コードは並列実行するための新しい...
この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...
目次1 テスト環境1.1 サーバーハードウェア1.1.1 t2.マイクロ1.1.2 c5.large...
背景当初は VMware の公式 Web サイトから 6.7 Vcenter をダウンロードしたかっ...
jQueryプラグインの毎日の積み重ねメニュー、参考までに、具体的な内容は次のとおりです。スタックメ...
説明: 指定された時間内に前のノードのコンテンツを置き換えるタイマーを設定します。 1. キーコード...
1. インターネットで長時間検索しましたが、判定表が存在するかどうかがわからなかったので、漠然と削除...
この記事では、簡単なショッピングフォームを実装するためのJavaScriptの具体的なコードを参考ま...
この記事では、JavaScriptで画像のプリロードと遅延ロードを実装するための具体的なコードを参考...
平行ボックスの余白 (二重余白の重なり) に関する面接の質問: 1 つのボックスに上余白があり、もう...
目次1. スローログの紹介2. スローログの練習1. スローログの紹介スロー ログの正式名称はスロー...
目次序文インストール導入環境の切り替え傍受を要求するレスポンスインターセプションAPIの統合管理要約...
アイデア:外側のボックスは背景を設定し、内側のボックスは背景の幅と高さを設定し、ボックスを動かすアニ...
目次序文指導の基本フック機能フック関数のパラメータ文章使い方とアイデア成し遂げる汎用性を高める要約す...