この記事は、mysql に関する関連知識を提供します。主に、SELECT ステートメントを分析するための EXPLAIN コマンドを含む、遅い左結合クエリと長時間の落とし穴の概要を次のように紹介します。見てください、それが皆さんのお役に立てば幸いです。
推奨される学習: mysql ビデオ チュートリアル
2 つのテーブルと 1 つはユーザー テーブル a (主キーは int 型)、1 つはユーザー固有情報テーブル b(ユーザーテーブル ID フィールドは varchar 型)です。
ユーザーとユーザー情報を表示したいので、関連するクエリを実行する必要がありますが、左結合後のクエリは遅く、時間がかかりすぎることがわかりました。ユーザーテーブルのデータは約20,000件あります。
#問題の分析と処理1. EXPLAIN コマンドを使用して SELECT ステートメントを分析します type このフィールドは、クエリが効率的かどうかを判断するための重要な基礎を提供します。type フィールドを通じて、クエリがフル テーブル スキャンであるかインデックス スキャンであるかを判断します。 ALL: フル テーブル スキャンを示します。このタイプのクエリはパフォーマンスが最も高く、最悪のクエリの 1 つです。一般的に、クエリには ALL タイプのクエリを含めるべきではありません。そのようなクエリは、大量のクエリがデータベースのパフォーマンスに大きな影響を与えるからです。データが大きい場合 たとえば、クエリは ALL タイプのクエリであるため、一般的に、これを回避するには、対応するフィールドにインデックスを追加できます。 2. 新しいインデックス テーブル内のフィールド b のインデックスが以前に作成されていないことが判明したためです。alter table a add index idx_mbrID (mbrID);
ALL < index < range ~ index_merge < ref < eq_ref < const < system
以上が遅くて時間がかかるmysqlの左結合クエリの落とし穴をまとめて整理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。