ホームページ > データベース > mysql チュートリアル > mysqlインデックスの違いは何ですか

mysqlインデックスの違いは何ですか

WBOY
リリース: 2022-02-17 11:54:25
オリジナル
6818 人が閲覧しました

相違点: 1. 一意のインデックスのインデックス列の値は一意である必要があり、NULL 値が許可されます; 2. 主キー インデックスのインデックス値は一意である必要がありますが、NULL 値は許可されます。許可されません; 3. 結合インデックスはクエリ条件でのみ使用できます インデックスは、インデックスの作成時に使用される最初のフィールドが使用される場合にのみ使用されます; 4. フルテキスト インデックスは、Myisam ストレージを使用するテーブルでのみ使用できますエンジン。

mysqlインデックスの違いは何ですか

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql インデックスの違いは何ですか

Mysql インデックス タイプ:

主キー インデックスと一意のインデックスの違いは、null 値が許可されないことです。主キーの作成 このインデックスは自動的に作成されます。

通常のインデックス: 最も基本的なインデックスであり、特別な制限はありません。

一意のインデックス: 通常のインデックスとの違いは、インデックス列の値は一意である必要がありますが、NULL 値を含めることができることです。

フルテキスト インデックス: Myisam ストレージ エンジンを使用するテーブルでのみ、より大きなデータ列に使用できます。

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

に従います。例は次のとおりです:

1. 通常のインデックス

が最も多くなります。基本的なインデックスです。制限はありません。作成方法は以下のとおりです。

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

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

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

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

(3) インデックスを作成するtable インデックス

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`),
    INDEX index_name (title(length))
)
ログイン後にコピー

を同時に作成します (4) インデックス

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) 作成時に # を直接指定しますテーブル ##

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 ,
    UNIQUE indexName (title(length))
);
ログイン後にコピー

3. 主キー インデックス

# は特別な一意のインデックスです。テーブルには主キーを 1 つだけ持つことができ、NULL 値は許可されません。通常、主キー インデックスはテーブルの作成時に同時に作成されます:

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

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 ビデオ チュートリアル

以上がmysqlインデックスの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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