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実行コンテナが作成状態にある問題についての簡単な説明

推薦する

CSS3 フリップカード番号サンプルコード

今日会社から課題をもらったのですが、効果図は以下のとおりです。 どのような効果を実現したいかは特に決...

MySQL 無料インストール版 (zip) のインストールと設定の詳細なチュートリアル

この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...

CentOS7 インストール Zabbix 4.0 チュートリアル (イラストとテキスト)

SeLinuxを無効にするsetenforce 0永久に閉店: vi /etc/selinux/c...

Windows での MySQL データベースのマスター/スレーブ構成チュートリアル

WindowsでMySQLデータベースのマスターとスレーブを構成する詳細なプロセスは次のとおりです。...

MySQL データテーブルのパーティション戦略と利点と欠点の分析

目次なぜパーティションが必要なのでしょうか?パーティショニング戦略パーティションの危険性なぜパーティ...

重複リクエストを削除するAxiosのソリューションについての簡単な説明

目次1. 重複したリクエストをキャンセルする2. すべてのリクエストをクリーンアップするこのソリュー...

elementui の el-popover スタイルの変更が有効にならない問題の解決策

element-uiを使用する場合、el-popoverというよく使われるコンポーネントがありますが...

CSS 画像アニメーション効果のサンプルコード(フォトフレーム)

この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...

Linux ファイアウォールを設定してポート 80 と 3306 を開く方法

ポート80も設定されています。まずファイアウォール設定ファイルを入力しますシェル># vim ...

Docker 階層化パッケージを使用して Spring Boot を設定する方法

Spring Boot プロジェクトでは、Docker コンテナ、jar、war の階層化パッケージ...

CSS で画像アダプティブ コンテナを実装するためのサンプル コード

多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...

Bootstrap 3.0 学習ノート グリッドシステム事例

序文前回の記事では、主にグリッドシステムの基本原理を学び、簡単なケースを通してその原理を実践しました...

LeetCode の SQL 実装 (175. 2 つのテーブルの結合)

[LeetCode] 175.2つのテーブルを結合する表: 人物+-------------+--...

Mysql5.7.14 Linux版のパスワードを忘れた場合の完璧な解決策

/etc/my.confファイルで、[mysqld]の下に次の行を追加します: skip-grant...

モバイル端末のジャンプ問題を解決する(CSS遷移、ターゲット疑似クラス)

序文モバイル端末に触れたばかりの友人の多くは、クリックジャンプルーティング、特にVueルーティングを...