1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原則に従う必要があります。これは、クエリがインデックスの左端の列から開始され、インデックス内の列をスキップしないことを意味します。 前提条件: 複合インデックス (ユーザー名、パスワード、年齢) がテーブルに追加されている 分析: クエリにユーザー名がなく、クエリ条件複合インデックスの左端のユーザー名が欠落しているため、最良左プレフィックスの原則に違反し、インデックスが失敗して ALL (完全なテーブル スキャン) になります。 分析: クエリ条件にユーザー名とパスワードがありません。クエリ条件複合インデックスの左端のユーザー名とパスワードが欠落しているため、最良左プレフィックスの原則に違反し、インデックスが失敗して ALL (完全なテーブル スキャン) になります。 分析: このクエリにはユーザー名条件が 1 つだけあります。最良左プレフィックスの原則に従って、インデックスは部分的にしか使用できません。 2. インデックス列に対して操作 (計算、関数、(自動または手動の) 型変換) を実行しないでください。インデックスが失敗し、テーブル全体のスキャンが発生します。 分析: 最初のグラフインデックス列は関数を使用せず、左プレフィックスの原則に従い、インデックスを使用できます。 2 番目の図では、インデックス列に関数を使用しています。左プレフィックスの原則に従っていても、インデックスは無効のままです。 3. ストレージ エンジンはインデックス内の範囲条件の右側の列を使用できず、範囲の後のインデックスは無効になります。 (< 、> との間) 分析: 図 1 のすべてのインデックスが使用されます。図 2 では、インデックスはユーザー名と年齢を使用していますが、ユーザー名はインデックスを使用して取得され、年齢はインデックスのソートに重点を置いています。この場合、年齢は範囲検索であり、パスワード インデックスは無効になります。 4. MySQL が不等号 (!= または <>) を使用すると、インデックスが使用できなくなり、インデックスが失敗します。 5. MySQLでis not nullまたはis nullを使用すると、インデックスが使用できなくなります。 分析: ユーザー名列に通常のインデックスが作成されます。クエリには null が含まれていないため、結果のインデックスは有効ではありません。 6. MySQL では、like クエリが % で始まる場合、インデックスは無効になり、テーブル全体がスキャンされてインデックスがカバーされます。 分析: ユーザー名列に通常のインデックスが作成され、% で始まる値でクエリが実行されます。その結果、インデックスが無効になり、上書きされます。 7. MySQL では、文字列インデックスは一重引用符で囲まれていない場合は無効になります。正しい書き方: select * from t_user where username = 'lujin'; 8. MySQL では、条件に or が含まれている場合、条件にインデックスが含まれていても or は使用されません (このため、 or はできるだけ使用しないようにする必要があります)。またはを使用してインデックスを有効にする場合は、または条件内の各列にのみインデックスを追加できます。 9. MySQLがインデックスよりも高速にフルテーブルスキャンを使用する場合、インデックスは使用されません。 要約する これで、MySQL インデックス障害の分析に関するこの記事は終了です。MySQL インデックス障害に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: スマートCSSを使用して、ユーザーのスクロール位置に基づいてスタイルを適用します。
>>: Docker View プロセス、メモリ、カップ消費量
まず、MySQL公式サイトからインストールパッケージをダウンロードします。MySQLはオープンソース...
前の 2 つの章を終えて、ボタンのフローティング アニメーションについて新たな理解が得られましたか?...
docker リモート API を学習した学生であれば、ポート 2375 についてよくご存知だと思い...
以下のように表示されます。 CSSコードコンテンツをクリップボードにコピー分割{境界線: 2px 固...
目次1. 鏡を見つける2. RabbitMQイメージをダウンロードする3. RabbitMQコンテナ...
フロントエンドのデザイン案では、「X」や「>」の形をした閉じるボタンや、他の 3 方向の白抜き...
Java開発キットjdkをダウンロードするJDK のダウンロード アドレスはhttp://www.o...
MySQL の全体的なアーキテクチャは、サーバー層とストレージ エンジン層に分かれています。サーバー...
問題の説明ボタンのスタイルはアイコン + テキストです。フレックス レイアウトを使用して垂直方向に中...
SQL UNIQUE制約UNIQUE 制約は、データベース テーブル内の各レコードを一意に識別します...
方法1: var a = [1,2,3]; var b = [4,5] b を連結します。 コンソー...
背景この記事では主に、MySQL が更新ステートメントを実行するときに、元のデータと同一の (つまり...
MySQL の暗号化と復号化の例データの暗号化と復号化はセキュリティ分野で非常に重要です。プログラマ...
よくある質問easyswoole を初めて使用する場合は、次のような問題に遭遇することがよくあります...
1. HTMLタグは常に閉じる前のページのソース コードでは、次のような記述がよく見られます。 &l...