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レベルのリンクの非選択ドロップダウンボックスバージョンを実現します。
この記事では、CSS ::markerの興味深い疑似要素を紹介します。これを使用すると、テキスト番号...
概要データベースでは、ツリー ディレクトリと同様に、インデックスを使用してデータ検索を高速化します。...
CSS スタイルを使用して表内のフォントを垂直方向に中央揃えする方法は次のとおりです。下図のようなカ...
OOM は「Out Of Memory」の略で、メモリオーバーフローを意味します。メモリ オーバーフ...
面接で「MySQL に 1,000 万件のレコードをすばやく挿入するにはどうすればよいか」という質問...
この記事では、MySQL 8.0.15 winx64解凍版のインストールと設定方法を紹介します。具体...
目次バッチコピー copyWithin()配列を埋めるメソッド fill()指数の計算方法については...
CSSを使用してブラウザのスクロールバーのスタイルを変更する ::-webkit-スクロールバー{ ...
テーブルの欠点1. テーブルは他の HTML タグよりも多くのバイトを占有します。 (ダウンロード時...
ウェブデザイナーを長い間悩ませてきた疑問があります。それは、固定レイアウト、流動的レイアウト、柔軟レ...
ハイパーリンク。「リンク」とも呼ばれます。ハイパーリンクは、私たちが閲覧する Web ページのいたる...
データ整合性は、エンティティ整合性、ドメイン整合性、参照整合性に分けられます。参照整合性:参照整合性...
目次概要4つの例例1: 誕生日で説明する約束の基本例2: 数字当てゲーム例3: Web APIから国...
目次0x0 はじめに0x1 RBAC 実装0x2 クレームベースの承認0x3 統合 CASL 0x4...
1. 要約:一般的に、次のカテゴリに分類できます。 Docker 環境情報 — docker [i...