私は使用しています:
PRIMARY KEY (id), UNIQUE id (id), KEY id_2 (id)
KEY id_2 (id)
テーブルを作成するときはいつでも、何をするのか、なぜなのかわかりません。
私はどこでも検索しましたが、適切な答えを見つけることができません。ありがとう!
あなたの例に基づいて、1つの列に3つの異なるインデックスを作成していると思います...これはおそらくあなたが意図していたことではありません。
まず、主キーを作成します。
PRIMARY KEY (id)
次に、一意のインデックスを作成します。これは、すでに主キーを持っているため、必要ありません...そして、この一意のインデックスに名前を付けますid
。
UNIQUE id (id)
最後に、次の名前の3番目のインデックスを作成しますid_2
。
KEY id_2 (id)
代わりに、主キーだけを作成し、他の2つのインデックスは使用しないでください。
この質問から:ほとんどのSQLデータベースで同じインデックスを2回定義できるのはなぜですか?
KEY
構文により、そのキー列の名前付きインデックスを作成できるようになります。はそのid_2
名前です。関連する質問でわかるように、これを複数回指定できます。
CREATE TABLE `testkey` (
`id` varchar(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`),
KEY `id_2` (`id`)
)
それはあなたのインデックスの名前です。id列にid_2というインデックスを作成しています
id
と呼ばれる列にインデックスを作成しますid_2
。
MySQL CREATE TABLEステートメントのドキュメントから:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
create_definition:
col_name column_definition | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
[index_option] ... | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)
[index_option] ...
つまり、KEY
はの同義語ですINDEX
。