web-dev-qa-db-ja.com

Oracleの主キー列にインデックスを付ける必要がありますか

最近、主キーはインデックスではなく、一意制約とNull制約の組み合わせであると考えるようになりました。そして今まで、私はPK列のインデックスを作成したことがありません。私の質問は、この列が多くのクエリのWHERE部分で使用される場合、PK列のインデックスを作成する必要があるかどうかです。

19

Oracleがインデックスを作成するか、既存のインデックスを使用できます。一意のインデックスを使用するか、一意でないインデックスを使用するかは、あなた次第です。

http://docs.Oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm#i1006566

主キー自体はインデックスでも一意制約でもありません。どちらも制約です。ただし、それらをサポートするためにインデックスが使用されます。

一意のインデックスは、一意の制約または主キー制約がない場合に存在する可能性があるため、かなり異なります。また、どちらの制約タイプでも、それをサポートするインデックスが一意である必要はありません。

22
David Aldridge