相違点: 1. 一意のインデックスのインデックス列の値は一意である必要があり、NULL 値が許可されます; 2. 主キー インデックスのインデックス値は一意である必要がありますが、NULL 値は許可されます。許可されません; 3. 結合インデックスはクエリ条件でのみ使用できます インデックスは、インデックスの作成時に使用される最初のフィールドが使用される場合にのみ使用されます; 4. フルテキスト インデックスは、Myisam ストレージを使用するテーブルでのみ使用できますエンジン。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
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、alter 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) );
ALTER TABLE article ADD FULLTEXT index_content(content)
CREATE FULLTEXT INDEX index_content ON article(content)
以上がmysqlインデックスの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。