CREATE TABLE test (id INT, age INT, INDEX(id,age));
DESCRIBE test;
この与え、このクエリを使用してMySQLにインデックスを作成しようとしました:私はちょうどidは私が見つけたインデックスを付けた理由を見つけることを試みた
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | MUL | NULL | |
| age | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2つ以上のもの。そのCREATE INDEXクエリでは、インデックスの名前が再クエリされ、USE INDEX()
ステートメントが存在します。今
私の質問:
- は、最初のクエリが間違っているか、私は両方のIDとのペアのような年齢のインデックスを作成しなかった、それは単にIDをインデックス化することを示し、なぜですか?
- 最初のクエリと同じように(またはプライマリキーの列を設定するときなど)、名前を付けずにインデックスを作成できますか?
- インデックスを使用するたびに
USE INDEX
を追加する必要がありますか?はいの場合は、デフォルトでインデックスが使用される状況があります(たとえば、可能であれば、名前のないインデックスを作成する場合など)。
'MUL'は「multipart」を意味します。あなたの質問は大丈夫です。いいえ、あなたは 'インデックスを使う必要はありません。私はあなたの問題が何であるか理解していません。ドキュメントをお読みください。 – Bohemian