1. 実施計画の概要実行プランとは、MySQL クエリ オプティマイザーによって最適化された後の SQL ステートメントの特定の実行方法を指します。 MySQL では、実行プランに関する関連情報を取得するための EXPLAIN ステートメントが提供されています。 EXPLAIN ステートメントは、関連するステートメントを実際に実行するのではなく、クエリ オプティマイザーを通じてステートメントを分析し、最適なクエリ ソリューションを見つけて、対応する情報を表示することに注意してください。 実行プランは通常、SQL パフォーマンス分析、最適化、その他のシナリオで使用されます。 Explain 結果を通じて、データ テーブルのクエリ順序、データ クエリ操作の操作タイプ、ヒットできるインデックス、実際にヒットするインデックス、各データ テーブルでクエリされるレコードの行数などの情報を知ることができます。 explain 実行プランは、SELECT、DELETE、INSERT、REPLACE、および UPDATE ステートメントをサポートします。通常、選択クエリ ステートメントを分析するために使用します。 2. 実行計画の実践次のクエリ ステートメントの実行プランを簡単に見てみましょう。 mysql> explain SELECT * FROM dept_emp WHERE emp_no IN (SELECT emp_no FROM dept_emp GROUP BY emp_no HAVING COUNT(emp_no)>1); +----+-------------+-----------+-----------+---------+-----------------+----------+---------+----------+-----------+------------+-------------+ | id | select_type | テーブル | パーティション | タイプ | 可能なキー | キー | キー長 | ref | 行 | フィルター済み | 追加 | +----+-------------+-----------+-----------+---------+-----------------+----------+---------+----------+-----------+------------+-------------+ | 1 | PRIMARY | dept_emp | NULL | ALL | NULL | NULL | NULL | NULL | 331143 | 100.00 | where の使用 | | 2 | サブクエリ | dept_emp | NULL | インデックス | PRIMARY、dept_no | PRIMARY | 16 | NULL | 331143 | 100.00 | インデックスを使用 | +----+-------------+-----------+-----------+---------+-----------------+----------+---------+----------+-----------+------------+-------------+ ご覧のとおり、実行プランの結果には 12 列あります。各列の意味は次の表にまとめられています。
実行プランの重要な列をいくつか見てみましょう。 id:SELECT識別子。これはクエリ内の SELECT の序数です。行が他の行の結合結果を参照する場合、値は NULL になることがあります。 ID が同じ場合は実行順序は上から下になりますが、ID が異なる場合は ID 値が大きいほど優先度が高くなり、先に実行されます。 選択タイプ:クエリのタイプ。一般的な値は次のとおりです。
テーブル:クエリに使用されるテーブル名を示します。各行には対応するテーブル名があります。通常のテーブルに加えて、テーブル名は次の値になることもあります。
タイプ:クエリ実行のタイプ。クエリがどのように実行されるかを説明します。すべての値の最高から最低までの順序は次のとおりです。 システム > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL いくつかの一般的なタイプの具体的な意味は次のとおりです。
可能なキー:possible_keys 列は、クエリを実行するときに MySQL が使用する可能性のあるインデックスを示します。この列が NULL の場合、使用できるインデックスがないことを意味します。この場合、WHERE 句で使用されている列をチェックして、これらの列の 1 つ以上にインデックスを追加することでクエリのパフォーマンスを向上できるかどうかを確認する必要があります。 鍵:キー列は、MySQL で実際に使用されるインデックスを示します。 NULL の場合、インデックスは使用されません。 キー長さ:key_len 列は、MySQL で実際に使用されるインデックスの最大長を示します。結合インデックスが使用される場合、複数の列の長さの合計になる場合があります。ニーズを満たす限り、短ければ短いほど良いです。 key 列に NULL が表示される場合、key_len 列にも NULL が表示されます。 行:行の列は、テーブルの統計と選択条件に基づいて、検索されるレコード数または読み取られる行数の概算を表します。値が小さいほど、優れています。 余分な:この列には、MySQL がクエリを解析する方法に関する追加情報が含まれています。この情報は、MySQL がクエリを実行する方法をより正確に理解するのに役立ちます。一般的な値は次のとおりです。
Extra 列に Using filesort または Using temporary が含まれている場合、MySQL のパフォーマンスに問題が発生する可能性があるため、可能な限り回避する必要があることに注意してください。 以上がMySQL実行計画の学習の詳細な内容です。MySQL実行計画の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Dockerはjenkins+mavenコード構築および展開プラットフォームを構築します
>>: ウェブ上でチャートを描くための 9 つの優れた JavaScript フレームワーク スクリプト
問題を見つける今日、仕事中に、ローカル データベースから仮想マシン CentOS 6.6 上のデータ...
目次1. 組み込みオブジェクト2. 数学オブジェクト1. Mathオブジェクトの使用2. 指定された...
1. リンクの使用方法:コードをコピーコードは次のとおりです。 <a href="j...
目次1. 問題2. 解決策オプション1:オプション2: 1. 問題この話は、エラーと脱落率を照会する...
XHTML の img タグはいわゆる自己終了タグであり、XML では完全に合法です。 XHTMLの...
参照ドキュメント公式 Docker インストール ドキュメント: https://docs.dock...
MySQL 8.0.16 にインストールする場合、「UTF8B3」ではなく「UTF8B4」が使用さ...
序文このプロジェクトでは円形のメニューが必要です。オンラインで検索しましたが、適切なものが見つからな...
インストール手順 rpm -ivh mysql-コミュニティ-共通-5.7.18-1.el7.x86...
この記事の例では、Element+vueを使用して開始と終了の時間制限を実装するための具体的なコード...
私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリテ...
目次1. Tomcatを監視する方法2. Java独自の監視コマンド3. Tomcatのトラブルシュ...
この記事では、例を使用して、MySQL アカウント管理の原則と実装方法を説明します。ご参考までに、詳...
目次前の1. セットアップ構文シュガーとは何か2. セットアップコンポーネントを使用して自動的に登録...
ps: 環境はタイトル通りです依存関係をインストールする yum インストール openssl-de...