ホームページ  >  記事  >  データベース  >  mysqlにはジョイントインデックスがありますか?

mysqlにはジョイントインデックスがありますか?

WBOY
WBOYオリジナル
2022-06-16 10:52:212373ブラウズ

mysql にはジョイント インデックスがあります。ジョイント インデックスは、テーブル上の 2 つ以上の列フィールドのインデックス付けを指します。複合インデックスとも呼ばれます。ジョイント インデックスの後ろの列のみが実行される場合、検索時にインデックスがインデックスを作成する構文は、「テーブル名にインデックス インデックス名を作成 (フィールド名 1、フィールド名 2、...)」です。

mysqlにはジョイントインデックスがありますか?

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

mysql にはジョイント インデックスがありますか?

Mysql にはジョイント インデックスがあります

ジョイント インデックス: 複合インデックスとも呼ばれ、2 つ以上のインデックスを指します。テーブルのインデックス 複数の列フィールドにインデックスを付けます。

Mysql はインデックス内のフィールドを左から右に使用します。クエリではインデックスの一部のみを使用できますが、左端の部分のみを使用できます。たとえば、インデックスはキー インデックス (a,b,c) で、a | a, b | a, b, c の 3 つの組み合わせでの検索をサポートできますが、b と c の組み合わせでの検索はサポートしません。

# ヒント: ジョイント インデックスの背後にある列を検索する場合のみ、インデックスは何の効果もありません

-- 用户表
CREATE TABLE `user` (
  `id` int(4) NOT NULL COMMENT '主键ID',
  `name` varchar(4) NOT NULL COMMENT '姓名',
  `age` int(3) NOT NULL COMMENT '年龄',
  PRIMARY KEY (`id`)
)

1. インデックスを作成します

上の図に示すように、User テーブルを作成しました。テーブルの name 列と age 列に結合インデックスを作成したい場合は、次の SQL を使用できます。

create index index_name_age on user (name,age);

ジョイントインデックス: テーブル名にインデックスインデックス名を作成します (フィールド名 1 ,フィールド名 2,...)

2. インデックスを削除します

作成されたジョイント インデックスが適切ではない場合は、次の SQL を使用してジョイント インデックスを削除できます:

drop index index_name_age on user;

または次のコマンドを使用します: alter table table namedropindexindex name

alter table user drop index index_name_age;

3.同じ名前のインデックスが存在する場合、エラーが報告されます。

結合インデックス (index_name_age) が作成されたと仮定し、再度インデックスを作成すると、次のエラーが報告されます。

Query : create index index_name_age on user (name,age)
Error Code : 1061
Duplicate key name 'index_name_age'

4. インデックスの表示

インデックスを表示するための構文: テーブル名からインデックスを表示

SHOW INDEX FROM USER;

推奨学習:

mysql ビデオ チュートリアル

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。