1. インデックスはnull値を保存しない より正確に言うと、単一列インデックスには null 値は格納されず、複合インデックスにはすべて null の値は格納されません。インデックスには Null 値を格納できません。したがって、この列に is null 条件を使用すると、インデックスに Null 値がないためインデックスを使用できず、テーブル全体をスキャンすることしかできなくなります。 2. キー値が少ない列(重複データが多い列)には適していません インデックス列 TYPE に 5 つのキー値があり、レコードが 10,000 件ある場合、WHERE TYPE = 1 はテーブル内の 2,000 個のデータ ブロックにアクセスします。 3. 先頭のあいまいクエリではインデックスを使用できません (「%XX」や「%XX%」など) 'AAA'、'AAB'、'BAA'、'BAB' という値を持つコードの列があり、'%AB' のようなコードが入る条件があった場合、前の条件が曖昧なので、インデックスの順序は使えず、値を一つずつ検索して条件に合っているかどうかを調べる必要があります。これにより、完全なインデックス スキャンまたは完全なテーブル スキャンが実行されます。条件が「A % 」のようなコードである場合、CODE 内の A で始まる CODE の位置を検索できます。B で始まるデータに遭遇すると、後続のデータは確実に要件を満たさないため、検索を停止できます。この方法でインデックスを活用できます。 4. インデックス障害が発生するいくつかの状況 1. 条件に or がある場合、条件にインデックスがあっても or は使用されません (これが、 or ができるだけ使用されないようにする理由です) nid = 1 または name = '[email protected]' の場合、tb1 から * を選択します。 --特殊: or 条件は、インデックスが作成されていない列がある場合にのみ無効になります。次の例では、インデックス select * from tb1 where nid = 1 or name = 'seven' を使用します。 nid = 1 または name = '[email protected]' かつ email = 'alex' の場合、tb1 から * を選択します。 2. 複数列インデックスの場合、インデックスは最初に使用される部分でない限り使用されません。 3.クエリが%で始まる tb1 から * を選択します。メールアドレスは '%cn' のようなものになります。 4. 列の型が文字列の場合、条件内でデータを引用符で囲む必要があります。そうしないと、インデックスは使用されません。 tb1 から email = 999 の * を選択します。 5. MySQL は、テーブル全体のスキャンの方がインデックスよりも高速であると判断すると、インデックスを使用しません。 6. 通常のインデックスはインデックスがないことを意味するものではない - != tb1 から * を選択します。メールアドレスが != 'alex' の場合 --特別: 主キーの場合、インデックスは引き続き使用されます。select * from tb1 where nid != 123 -> tb1 から * を選択し、メール > 'alex' を選択します。 --特別: 主キーまたはインデックスが整数型の場合、インデックスは引き続き使用されます。select * from tb1 where nid > 123 tb1 から * を選択 (num > 123) 7. 複合インデックスの左端のプレフィックス 結合されたインデックスが次の場合: (名前、メール) 名前とメールアドレス - インデックスを使用 上記は、MySQL インデックスが失敗するいくつかの状況の詳細な概要です。MySQL インデックスの失敗の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順
>>: jsは、州、市、地区の3レベルのリンクの非選択ドロップダウンボックスバージョンを実現します。
前回述べた問題を解決するために、オンラインで検索したところ、非常に優れたビジュアル インターフェース...
目次概要ブロブBlob の動作BLOB ダウンロード ファイルブロブ画像のローカル表示BLOB ファ...
「通常 1em=16px」と言うのはなぜですか?ユーザーのブラウザによってレンダリングされるデフォル...
目次1. Redis Dockerベースイメージを作成する2. Redisノードイメージを作成する3...
目次序文原因現象なぜ?分析要約する序文今日は、非常に典型的な MySQL の「落とし穴」についてお話...
1. vue uiでプロジェクトを作成する 2. 基本設定項目を選択する 3. プロジェクトを実行す...
01. VMware Workstation Pro 15 のダウンロードダウンロード: VMwa...
最近、vue について読みました。これまで基本的に見落としていた単一ファイル コンポーネントを見つけ...
ウェブサイト管理者は、さまざまな理由や操作により、ウェブサイトのデータを誤って削除したり、ウェブサイ...
Composition API はロジック再利用手順を実装します。ロジックコードを関数に抽出します。...
他のデバイスの画像をローカルディレクトリにマウントするなど、サーバー上の静的リソースにアクセスする必...
Nginx の公式 Web サイトから Windows バージョンの Nginx をダウンロードしま...
ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを D...
#include <linux/moduleparam.h> 1. モジュールパラメータ...
問題の原因: 最初は CentOS 8 のデフォルトの yum ソースを正常に使用できますが、次のコ...