ホームページ > データベース > mysql チュートリアル > mysqlインデックスにはどのような種類がありますか?

mysqlインデックスにはどのような種類がありますか?

青灯夜游
リリース: 2019-05-06 13:43:13
オリジナル
21876 人が閲覧しました

MySQL で現在使用できる主なインデックス タイプは、通常のインデックス、一意のインデックス、主キー インデックス、結合インデックス、およびフルテキスト インデックスです。次の記事ではこれらの MySQL インデックスについて紹介します。お役に立てば幸いです。

mysqlインデックスにはどのような種類がありますか?

#フィールドにインデックスを追加すると、データの読み取り速度が向上し、プロジェクトの同時実行性とストレス耐性が向上します。インデックスの最適化は、MySQL の最適化メソッドです。索引は本の目次に相当し、目次のページ番号をもとに必要な内容をすぐに見つけることができます。

現在 MySQL で使用できる主なインデックス タイプを見てみましょう:

1. 通常インデックス

通常インデックスは、最も基本的なインデックスです。制限はなく、値を空にすることもできますが、クエリが高速化されるだけです。次の方法で作成または削除できます:

1)、インデックスを直接作成する

CREATE INDEX index_name ON table(column(length))
ログイン後にコピー

2)、テーブル構造を変更してインデックスを追加する

ALTER TABLE table_name ADD INDEX index_name ON (column(length))
ログイン後にコピー

3 )、インデックスの削除

DROP INDEX index_name ON table
ログイン後にコピー

2. 一意のインデックス

一意のインデックスは、インデックス列の値が次の値である必要があることを除いて、通常のインデックスと似ています。一意ですが、空の値も許可されます。複合インデックスの場合、列値の組み合わせは一意である必要があります。簡単に言うと、列の値が一意である (null が含まれる可能性がある) ため、一意のインデックスを使用するとクエリが高速化されます。次の方法で作成できます:

1)、一意のインデックスの作成

CREATE UNIQUE INDEX indexName ON table(column(length))
ログイン後にコピー

2)、テーブル構造の変更

ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
ログイン後にコピー

3、主キーIndex

主キー インデックスは特別な一意のインデックスであり、テーブルには主キーを 1 つだけ持つことができ、NULL 値は許可されません。簡単に言うと、主キー インデックスによりクエリが高速化され、列の値は一意であり (null を含むことはできません)、テーブル内に 1 つだけ存在します。

通常、主キー インデックスはテーブルの作成時に同時に作成されます。

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) );
ログイン後にコピー

もちろん、ALTER コマンドを使用することもできます。テーブルには主キーを 1 つだけ持つことができることに注意してください。

4. 複合インデックス

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

結合インデックスは、結合検索に特化した複数の列値で構成されるインデックスであり、インデックスの結合よりも効率が高いと言えます。

ALTER TABLE `table` ADD INDEX name_city_age (name,city,age);
ログイン後にコピー

5. フルテキスト インデックス

フルテキスト インデックスは、キーワードをテキスト内の値と直接比較するのではなく、主にテキスト内のキーワードを検索するために使用されます。索引。フルテキスト インデックスは他のインデックスとは大きく異なり、where ステートメントの単純なパラメータ マッチングではなく、検索エンジンに似ています。フルテキスト インデックスは、一般的な where ステートメントと like の代わりに match match 操作で使用されます。これは、create table、a​​lter table、create Index で使用できますが、現在、char、varchar、および text 列に作成できるのはフルテキスト インデックスのみです。データの量が多い場合は、最初にテーブルのフルテキストを作成してから、データの速度がはるかに速くなります。

1)、テーブルの作成時にフルテキスト インデックスを追加するのが適切です

CREATE TABLE `table` (
    `id` int(11) NOT NULL AUTO_INCREMENT ,
    `title` char(255) CHARACTER NOT NULL ,
    `content` text CHARACTER NULL ,
    `time` int(10) NULL DEFAULT NULL ,
    PRIMARY KEY (`id`),
    FULLTEXT (content)
);
ログイン後にコピー

2)、テーブル構造を変更してフルテキスト インデックスを追加します

ALTER TABLE article ADD FULLTEXT index_content(content)
ログイン後にコピー

3)、インデックスを直接作成します

CREATE FULLTEXT INDEX index_content ON article(content)
ログイン後にコピー

簡単に言えば、全文インデックス作成とは、テキスト コンテンツをセグメント化して検索することです。

以上がmysqlインデックスにはどのような種類がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート