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 中断された接続警告ログの分析

序文:場合によっては、MySQL に接続されたセッションが異常終了することが多く、エラー ログに「通...

要素を中央に配置するための配置方法 (Web ページ レイアウトのヒント)

ブラウザウィンドウの中央に要素を配置する方法まず、コード ブロックを示します。すでにコードを理解して...

Mysqlはフィールドスプライシングのための3つの関数を実装している

データをオペレーションにエクスポートする場合、フィールドの結合は避けられません。MySQL でこれが...

Vueコンポーネントの7つの通信方法についての深い理解

目次1. props/$emit導入コードサンプル2.Vスロット導入コードサンプル3.$refs/ ...

MySQL データベースの操作とデータ型

目次1. データベース操作1.1 データベースの表示1.2 データベースを作成する1.3 データベー...

CSS でリスト スタイル属性を設定する方法 (この記事を読むだけ)

リストスタイルのプロパティHTMLには、順序なしリストと順序ありリストの2種類のリストがあります。仕...

Linux での SELinux を理解する方法

目次1. SELinux の紹介2. SELinuxの基本概念2.1 仕事の種類2.2. セキュリテ...

埋め込みJavaScriptと外部リンクの基本的な応用方法

目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...

SQL で行の最大値または最小値を取得する方法

元データと対象データSQL文を実装する(最大) 選択 店、 月、 最大(dz,fz,sp) が最大値...

自分のブログを構築しながら学んだこと

<br />ブログを始めて 1 年、私はブログの内外で多くのことを個人的に学びました。ま...

XHTML でのハイパーリンク タグの使用に関するチュートリアル

ハイパーリンク。「リンク」とも呼ばれます。ハイパーリンクは、私たちが閲覧する Web ページのいたる...

JavaScript データ プロキシとイベントの詳細な分析

目次データブローカーとイベントObject.defineProperty メソッドのレビューデータブ...

Linux スワップメモリ​​を拡張する方法

スワップ メモリとは、主に物理メモリが不足している場合に、システムがハード ディスク領域の一部をサー...

ページにスクロールバーが表示されたときに、スクロールバーがページ幅に影響しないようにする方法

本体の幅をウィンドウの幅に設定します(次のスクリプトで制御されます) $("body&qu...