1. 程式人生 > >Oracle外鍵需要建索引嗎?

Oracle外鍵需要建索引嗎?

一鍵 tro 導致 ron 必須 影響 進行 問題 body

關於Oracle中的外鍵,首先要說明一下。

1. 除非已定義了父表主鍵或唯一鍵約束,否則oracle將不允許創建子表的外鍵約束。

2. 在定義外鍵約束時,oracle不會自動創建索引,所以必須手動在與外鍵約束相關的列上創建索引。

所以我們這裏要研究的是否需要在子表中創建索引,因為父表中對應的列是一定有索引的。

如果子表中的外鍵不創建索引,將導致兩個問題。

1. 影響性能。 如果子表外鍵沒有創建索引,那麽當父表查詢關聯子表時,子表將進行全表掃描。

2. 影響並發。 如果子表外鍵沒有創建索引,那麽在子表進行DML操作時,將會鎖住整個父表。

所以,我們應該盡量考慮在外鍵上面創建索引。

Oracle外鍵需要建索引嗎?