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リモート接続がしばらくすると切断される問題を解決

推薦する

mysql ダーティ ページとは何ですか?

目次ダーティページ(メモリページ)ダーティページが表示されるのはなぜですか?メモリ管理メカニズムの簡...

docker compose を使用して consul クラスタ環境を構築する例

領事の基本概念サーバーモードとクライアントモードサーバー モードとクライアント モードは、consu...

JS での new の手書き実装

目次1 新しいオペレータの紹介2 新しいものは何をしましたか? 3 新しい演算子の実装をシミュレート...

インデックスを設計する際の原則は何ですか? インデックスの障害を回避するにはどうすればよいでしょうか?

目次主キーインデックス頻繁にクエリされるフィールドのインデックスを作成する大きなフィールドのインデッ...

vue+springbootでログイン機能を実現

この記事の例では、ログイン機能を実現するためのvue+springbootの具体的なコードを参考まで...

Ubuntu 基本チュートリアル: apt-get コマンド

序文apt-get コマンドは、Ubuntu システムのパッケージ管理ツールです。パッケージのインス...

CSS3を使用してオンラインライブ放送に似たキューアニメーションを実装する方法

以前、グループの友人が質問しました。つまり、ミニプログラムでユーザーがオンラインになったときに、ライ...

ローカルストレージにブール型の値を保存する際の落とし穴を解決する

LocalStorageはブール値を保存します今日、ブール値データを保存するために localsto...

Dockerコンテナレイヤーの概念の詳細な説明

目次01 コンテナの一貫性02 レイヤーの概念03 レイヤードデザインの利点今日はコンテナ レイヤー...

MySQLでクエリキャッシュを実行する方法と失敗を解決する方法

関数を使用する前にパラメータのプロパティを理解して、関数の使い方をより深く理解する必要があることは誰...

雨滴効果を実現する JavaScript キャンバス

この記事では、雨滴効果を実現するためのJavaScriptキャンバスの具体的なコードを参考までに紹介...

mysql5.7 ユーザー権限の作成、ユーザーの削除、権限の取り消し

1. ユーザーを作成します。注文: 'password' によって識別される ...

シンプルなドラッグ効果を実現するjs

この記事では、簡単なドラッグ効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...

MacでのMySQL5.7.22のインストール手順

1. インストールパッケージを使用してMySQLをインストールします(オンラインダウンロードは遅すぎ...

v-model 双方向バインディングデータを実装する vue カスタム コンポーネントのサンプル コード

プロジェクトでは、プロジェクトが呼び出すカスタム パブリック コンポーネントに遭遇します。通常、pr...