MySQL のインデックスの種類と基本的な使用例

MySQL のインデックスの種類と基本的な使用例

この記事では、例を使用して、MySQL インデックスの種類と基本的な使用方法を説明します。ご参考までに、詳細は以下の通りです。

索引

MySQL には現在、次の主なインデックス タイプがあります。

  • 通常のインデックス
  • ユニークインデックス
  • 主キーインデックス
  • 総合指数
  • 全文索引

- 総合索引

最も基本的なインデックスであり、制限はありません。

CREATE INDEX IndexName ON `TableName`(`フィールド名`(長さ))

- ユニークなインデックス

前の通常のインデックスと同様ですが、違いは、インデックス列の値は一意である必要がありますが、null 値が許可されていることです。複合インデックスの場合、列の値の組み合わせは一意である必要があります。

CREATE UNIQUE INDEX indexName ON table(column(length))

- 主キーインデックス

これは特別な一意のインデックスです。テーブルには主キーを 1 つだけ設定でき、null 値は許可されません。通常、主キー インデックスはテーブルの作成と同時に作成されます。

テーブル `table` を作成します (
  `id` int(11) NOT NULL AUTO_INCREMENT ,
  `title` char(255) NOT NULL ,
  主キー (`id`)
);

- 複合インデックス

複数のフィールドに対して作成されたインデックスを参照します。インデックスは、インデックスが作成された最初のフィールドがクエリ条件で使用される場合にのみ使用されます。複合インデックスを使用する場合は、左端のプレフィックスセットに従います。

ALTER TABLE `table` ADD INDEX name_city_age (name,city,age);

- 全文索引

インデックス内の値と直接比較するのではなく、主にテキスト内のキーワードを見つけるために使用されます。フルテキスト インデックスは他のインデックスとは大きく異なります。これは、where ステートメントの単純なパラメータ マッチではなく、検索エンジンに似ています。フルテキスト インデックスは、一般的な where ステートメントと like の組み合わせではなく、match against 操作と組み合わせて使用​​されます。これは、create table、a​​lter table、create index で使用できますが、現在、フルテキスト インデックスの作成に使用できるのは char、varchar、および text 列のみです。データ量が多い場合は、最初にテーブルのフルテキスト インデックスを作成してからデータを書き込むよりも、グローバル インデックスなしでテーブルにデータを入れてから CREATE インデックスを使用してフルテキスト インデックスを作成する方がはるかに高速であることに留意してください。

テーブル `table` を作成します (
  `id` int(11) NOT NULL AUTO_INCREMENT ,
  `title` char(255) 文字 NOT NULL ,
  `content` テキスト文字 NULL 、
  `time` int(10) NULL デフォルト NULL ,
  主キー (`id`)、
  全文(コンテンツ)
);

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL インデックス操作スキルの概要」、「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLのカバーインデックスに関する知識ポイントのまとめ
  • MySQL InnoDB インデックス拡張の詳細な説明
  • MySQL パフォーマンスの最適化: インデックスを効率的かつ正しく使用する方法
  • MySQLインデックスの基本構文
  • MySQLの複合インデックス方式の詳細な説明
  • MySQL インデックスのクイックガイド
  • MySQL インデックスクエリ最適化スキルを習得するための記事
  • MySQL 8の新機能である降順インデックスの基礎となる実装の詳細な説明
  • MySQL フルテキスト インデックス、ジョイント インデックス、Like クエリ、JSON クエリのうち、どれが高速ですか?
  • インデックスとテーブルリターンをカバーするMySQLの使い方
  • さまざまな種類のMySQLインデックス

<<:  ウェブページの画像の回転を実現するjs

>>:  Alibaba Cloud SSHリモート接続がしばらくすると切断される問題を解決

推薦する

収集する価値のあるCSS命名規則(ルール) よく使われるCSS命名規則

CSS命名規則(ルール) よく使われるCSS命名規則ヘッダー: ヘッダーコンテンツ: コンテンツ/コ...

Vue3 でマークダウン エディター コンポーネントを使用する方法

目次インストールコンポーネントのインポート基本的な使い方保存したマークダウンまたは HTML テキス...

Vue-CLI3.xはプロジェクトをサーバーに自動的にデプロイします

目次序文1. scp2をインストールする2. テスト/本番環境サーバーのSSHリモートログインアカウ...

HTML4.0 要素のデフォルトスタイルの配置

コードをコピーコードは次のとおりです。 html、アドレス、引用ブロック、本文、dd、div、 dl...

CSS3入力ボックスの実装コードはGoogleログインのアニメーション効果に似ています

CSS3を使用して、Googleログインページと同様の入力ボックスをアニメーション化します。効果1 ...

Alibaba Cloud ECS サーバーでポート 8080 を開く方法

セキュリティ上の理由から、Alibaba Cloud Server ECS にはデフォルトで独自のセ...

JavaScript ES 新機能ブロックスコープ

目次1. ブロックスコープとは何ですか? 2. ブロックスコープが必要なのはなぜですか? 3. 関数...

Dockerがコンテナサービスを停止または削除できない問題の解決策

序文今日、開発者から、コンテナ サービスを停止、rm (docker rm -f)、または強制終了で...

H5 WeChatパブリックアカウント認証を実装するための簡単な手順

序文昨日、h5 WeChat認証の実装が必要なプロジェクトがありました。したがって、この機能を完了す...

Win10にMySQL8圧縮パッケージ版をインストールするチュートリアル

1 公式サイトからMySQL8をダウンロードしてインストールするMySQL8 ダウンロードアドレスこ...

JavaScript DOM オブジェクト操作

目次1. コア1. Domノードを取得する2. ノードの更新2.1 実践演習3. Domノードを削除...

CSS で background-color を使用して背景画像にマスク効果を追加する 2 つの方法

div で background-color と background-image を同時に設定する...

CSSの幅と高さのデフォルト値の詳細な説明:autoと%

結論は幅の%: 包含ブロック(親要素)の幅に基づいて、親の制限を超える幅のパーセンテージを定義します...

Vue で AES.js を使用する詳細な手順

AES暗号化の使用データ転送の暗号化と復号化処理 --- AES.js最初のステップ: vue に ...

ova ファイルを VMware にインポートする際の落とし穴の概要

問題の原因ご存知のとおり、すべてのネットワーク動作は対応するネットワークトラフィックを生成し、すべて...