2013-03-29 85 views
12

中的主鍵列我最近停下來認爲主鍵不是索引,它們是唯一約束和空約束的組合。直到現在,我從未爲PK列創建索引。我的問題是如果我應該爲PK列創建索引,如果這個列將被用於許多查詢的WHERE部分。我應該索引Oracle

+2

主鍵索引。 – Mat

+1

要查看備份主鍵約束指數: 選擇UI * 從USER_CONSTRAINTS UC,USER_INDEXES UI 其中uc.table_name = 'MY_TABLE_NAME' 和constraint_type = 'P' 和ui.TABLE_OWNER = uc.OWNER 和ui.TABLE_NAME = uc.TABLE_NAME 和ui.INDEX_NAME = uc.INDEX_NAME; – rimsky

回答

14

Oracle會爲您創建一個索引,或者可以使用現有索引。是否使用唯一索引或非唯一索引取決於您。

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

主鍵本身不是一個索引,並且也不是唯一約束 - 它們都是約束。然而,索引用於支持它們。

獨特的索引是相當不同的,因爲它可以存在於沒有唯一或主鍵約束的情況下,並且這兩種約束都不需要支持它的索引是唯一的。