web-dev-qa-db-ja.com

MySQLの複合主キーのINDEXはどうですか?

2つ以上の列の複合主キーを作成するとき。 PRIMARY KEY(col1, col2, col3);システムは各列を個別にINDEXしますか?

私がこの質問をしている理由は、UNIQUE INDEX (col1, col2, col3)を使用する場合、最初の列に対してのみINDEXとして機能し、他の列に対しては追加のINDEXsを作成する必要があるためです列。それが複合主キーにも当てはまるかどうかを知りたいです。

12
Googlebot
  1. 複合プライマリインデックスは常に、col1、col2、col3値の組み合わせが一意であることを保証します。インデックスの目的が値が一意であることを保証することである場合、あなたはそれを達成しているでしょう

  2. 複合インデックスは、列col1、col2、col3の任意の組み合わせでのインデックス一致も提供します

  3. 他の列を使用せずにいずれかの列を使用して結合またはフィルタリングする場合は、col2とcol3に個別のインデックスを作成します。

  4. 私は常に(ビジネス関連のない)数値の主キーと、必要に応じて複合主キーよりも一意のインデックスを好みます。