MySQL 上級学習インデックスの長所と短所、使用ルール

MySQL 上級学習インデックスの長所と短所、使用ルール

1. インデックスの利点と欠点

利点: 高速検索、高速グループ化および並べ替え

デメリット: ストレージスペースを占有し、データテーブルの変更操作が減少する

2. 指標の分類

主キーインデックスつまり、プライマリインデックスは主キーpk_clolum(長さ)に基づいて作成され、重複やnull値は許可されません。
ユニークインデックスインデックスの作成に使用される列の値は一意である必要があり、null 値が許可されます。
通常のインデックス制限なしでテーブル内の通常の列で構築されたインデックス
全文索引大きなテキストオブジェクトの列に構築されたインデックス
全文索引大きなテキスト オブジェクトの列で構築されたインデックス。
総合指数複数の列を使用して構築されたインデックス。これらの列の値には null 値は許可されません。

3. インデックスの使用ルール

1. インデックス作成に適した状況

  • 主キーは自動的に一意のインデックスを作成します。
  • WHERE または ORDER BY ステートメントのクエリ条件として頻繁に出現する列にはインデックスを付ける必要があります。
  • ソートする列にはインデックスを付ける必要があります。
  • クエリ内の他のテーブルに関連付けられたフィールドと外部キー関係がインデックス化されます。
  • 同時実行性が高い状況では結合インデックスを優先します。
  • 集計関数に使用される列にはインデックスを付けることができます。たとえば、max(column_1) または count(column_1) を使用する場合は、column_1 にインデックスを付ける必要があります。

2. インデックス作成が適さない状況

  • 頻繁に追加、削除、または変更される列にはインデックスを作成しないでください。
  • インデックス付けされていない繰り返し列が多数あります。
  • テーブルのレコード数が少なすぎる場合は、インデックスを作成しないでください。

3. インデックスの失敗

  • 複合インデックスには NULL 値を指定できません。NULL 値がある場合、この列は複合インデックスに対して無効です。
  • LIKE 操作では、「%aaa%」はインデックスを使用しません。つまり、インデックスは無効になりますが、「aaa%」はインデックスを使用できます。
  • インデックス付き列で式または関数を使用すると、インデックスが無効になります。
  • クエリ条件では、< 記号、> 記号、! などの「等しくない」を使用します。 = インデックスが失敗します。
  • クエリ条件で IS NULL または IS NOT NULL を使用すると、インデックスが無効になります。
  • 文字列が一重引用符で囲まれていない場合、インデックスは無効になります。
  • クエリ内の複数の条件を OR を使用して接続すると、OR でリンクされた各条件がインデックス化されていない限り、インデックスは失敗します。
  • 並べ替えフィールドでインデックスを使用する場合、選択したフィールドもインデックス フィールドである必要があります。そうでない場合、インデックスは無効になります。
  • 複数列の並べ替えを含めないようにしてください。必要な場合は、キューの複合インデックスを作成するのが最適です。

4. インデックスに関するSQL

1. テーブル作成時にインデックスを追加する

-- テーブル作成時にインデックスを追加します -- INDEX キーワード -- myindex 自分で選択したインデックス名 -- (username(16)) 追加する列 CREATE TABLE mytable(
 ID INT NULLではありません、
 ユーザー名 VARCHAR(16) NOT NULL,
 INDEX myindex (ユーザー名(16))
);

2. テーブル作成後にインデックスを追加する

-- インデックスを追加 -- myindex インデックス名 (自己定義)
-- mytable テーブル名 CREATE INDEX myindex ON mytable(username(16));
または ALTER TABLE mytable ADD INDEX myindex(username);

3 インデックスを表示

-- mytable テーブル名 show index FROM mytable;

4. インデックスを削除する

-- myindex インデックス名 (自己定義)
-- mytable テーブル名 DROP INDEX myindex ON mytable;
または ALTER TABLE mytable DROP INDEX myindex;

要約する

これで、インデックスの長所と短所、および高度な MySQL 学習におけるルールの使用に関するこの記事は終了です。より関連性の高い MySQL の高度なインデックスのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • mysql インデックスの追加 mysql インデックスの作成方法
  • MySQL インデックスタイプの概要と使用上のヒントと注意事項
  • MySQL でインデックスを表示、作成、削除する方法
  • MySQL インデックス作成方法、構文構造、および例
  • MySQL パフォーマンス最適化インデックス最適化
  • Mysql インデックスが失敗するいくつかの状況の分析
  • MySQLの主キーとインデックスの関係と違いの分析
  • MySQL全文インデックスに基づく詳細な理解
  • MySQLのINサブクエリによってインデックスが使用できなくなる問題を解決する
  • MySQL インデックス分析と最適化

<<:  CSS変数を使用してスタイルを変更する方法の例

>>:  Docker実行コンテナが作成状態にある問題についての簡単な説明

推薦する

背景画像にテキストを表示するためのCSS

効果: <div class="imgs"> <!-- 背景画...

プロジェクトを素早く構築するためのvite+vue3.0+ts+element-plusの実装

目次バイト機能使用環境プロジェクトを構築する構成vite.config.ts tsconfig.js...

Vue のプロダクション環境と開発環境を切り替えてフィルターを使用する方法

目次1. 本番環境と開発環境を切り替える最初の方法: .envファイルを設定する2番目の方法2. フ...

虫眼鏡効果を実現するJavaScript

この記事では、虫眼鏡効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。...

Linux で PCIe のバージョンと速度を確認する方法

PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...

MySQL の一般的なツール例の概要 (推奨)

序文この記事では主にMySQLでよく使われるツールに関する関連コンテンツを紹介し、皆さんの参考と学習...

Dockerコンテナとローカルマシン間でファイルを転送する方法

ホストとコンテナ間でファイルを転送するには、コンテナの完全な ID が必要です。取得方法は以下の通り...

MySQLのロック機構の詳細な説明

序文データの一貫性と整合性を確保するために、あらゆるデータベースにはロック メカニズムが備わっていま...

25 div+css プログラミングのヒントとコツ

1. ul タグには、Mozilla ではデフォルトでパディング値がありますが、IE ではマージン値...

トップナビゲーションバー機能を実現するCSS+HTML

ナビゲーション バー、固定トップ ナビゲーション バー、およびセカンダリ メニューの実装効果図の実装...

MySQL MHA のセットアップと切り替えに関するいくつかのエラー ログの概要

1: masterha_check_repl レプリカ セット エラー レプリケートが構成ファイルで...

Docker ディスク領域クリーニングのソリューション

少し前に、docker ディスク容量が小さすぎてデータを書き込めないという問題が発生しました。理由は...

MySQL 数十億のデータのインポート、エクスポート、移行に関するメモ

最近はMySQLのメモをたくさん取っていますが、それは主に会社のOracleが比較的安定していてメン...

JavaScript でカウントダウン効果を実装する

カウントダウン効果を実現するにはJavascriptを使用します。参考までに、具体的な内容は次のとお...

MySQLのビューとインデックスの使い方と違いの詳細な説明

MySQL ビュー簡単に言えば、MySQL ビューは SELECT コマンドを定義するためのショート...