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

推薦する

3Dカルーセル効果を実現するjs

この記事では、3Dカルーセル効果をjsで実装するための具体的なコードを参考までに共有します。具体的な...

CSS 属性を使用してマウス イベントをブロックする方法 (マウス クリックは上位の要素を貫通する可能性があります)

由来: 数日前、テスターから写真を見るという要件が送られてきました。 この要件を見たとき、私は少し混...

効率をN倍に高めるVimクイックリファレンステーブル15個

昨年の前半から開発と娯楽のために Linux を使い始めましたが、今では Windows には戻れま...

Dockerコンテナ内で2つのプロセスを開始するときのDockerfile実装コード

最近、cronスケジュールタスク用のdockerを作りたいと思っており、Dockerfileで次のよ...

JavaScript配列重複排除の詳細な説明

目次1. アレイ重複排除2. 配列内のオブジェクトの重複排除3. 配列内の同じフィールドに基づいて別...

MySQL の InnoDB ストレージ ファイルの詳細な説明

物理的に言えば、InnoDB テーブルは、共有テーブルスペース ファイル (ibdata1)、排他テ...

Linux システムの /etc/fstab ファイルの詳細な解釈

序文 [root@localhost ~]# cat /etc/fstab # #/etc/fsta...

Linux lsof コマンドの使用方法の詳細な説明

lsof (開いているファイルのリスト) は、プロセスによって開かれたファイルを表示するツールです。...

Ansible を使用した Nginx のバッチ デプロイのサンプル コード

1.1 nginxインストールパッケージとインストールスクリプトをクライアントにコピーし、スクリプト...

Linux で killall コマンドを使用してプロセスを終了する 8 つの例

Linux コマンドラインには、プロセスを強制終了するためのコマンドが多数用意されています。たとえば...

vue+element カスタムクエリコンポーネント

この記事では主に Vue プロジェクトを紹介します。要素の導入を前提として、コンポーネントを 2 回...

JavaScriptはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

FileZilla 425 FTP に接続できない (Alibaba クラウド サーバー) の解決策

Alibaba Cloud ServerがFTPに接続できないFileZilla 425 データ接続...

Dockerコンテナの接続と通信の実装

ポート マッピングは、Docker を別のコンテナーに接続する唯一の方法ではありません。 Docke...

高速レイアウトのための CSS ビューポート単位

CSS ビューポート ユニットはここ数年登場しており、時が経つにつれて、ますます多くの開発者が使用し...