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

推薦する

Tomcatの再構成後に起動が遅くなる問題を迅速に解決

Jenkins+Tomcatサーバーの設定中に、Tomcat設定ファイルが変更され、サーバーのTom...

MySQLのストレージエンジンについてお話しましょう

基礎リレーショナル データベースでは、各データ テーブルはファイルに相当し、異なるストレージ エンジ...

Mysqlツリー再帰クエリの実装方法

序文部門テーブルなどのデータベース内のツリー構造データの場合、部門のすべての従属部門または部門のすべ...

CSS3+JS による虫眼鏡モードの完璧な実装の詳細説明

約 1 年前、私は「虫眼鏡効果を模倣するいくつかの方法の原理の分析」という記事を書きました。当時、自...

HTML ページの部分更新の実装コード

イベント応答の更新: 要求されたときのみ更新1. JS HTML DOM または jQuery を介...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

Docker デプロイメント Consul 構成プロセスの分析

コマンドを実行docker run -d --name consul -p 8500:8500 co...

JVMシリーズのメモリモデルの詳細な説明

目次1. メモリモデルとランタイムデータ領域2. マインドマップと凡例3. オブジェクトはJVMから...

JavaScript WeakMap の使い方の詳しい説明

WeakMap オブジェクトは、キーが弱参照であるキー/値のペアのコレクションです。キーはオブジェク...

MySQL の general_log ログの知識ポイントの紹介

以下の操作デモンストレーションはすべて MySQL バージョン 5.6.36 に基づいています。仕事...

Dockerコンテナでユーザーを切り替えるときに権限が不足する問題を解決する方法

Docker コンテナでユーザーを切り替えると、権限が不十分であるというメッセージが表示されます。解...

JavaScript でツリー構造を構築するための効率的なアルゴリズムについての簡単な説明

目次導入アイデアID配列インデックスのマッピング関係を確立するツリー構造の構築原理要約する導入組織階...

あなたをエキスパートに見せるための 13 個の JavaScript ワンライナー

目次1. ランダムなブール値( true / false )を取得する2. 指定された日付が営業日で...

MySql のグループ化と各グループからランダムに 1 つのデータを取得する

アイデア: 最初にランダムに並べ替えてからグループ化します。 1. テーブルを作成します。 テーブル...

vue+el-upload は複数ファイルの動的アップロードを実現します

vue+el-upload 複数ファイルの動的アップロード、参考までに具体的な内容は以下のとおりです...