2017-09-08 95 views
-5

我有一個場景,其中有兩個表具有唯一元素,並且兩個表都包含相同類型的記錄。現在一張桌子有主鍵,另一張沒有。所以如果我在這兩個表中都有獨特的元素,那麼有主鍵的優點是什麼。以及主鍵如何與索引相關聯。 我在諾基亞採訪中被問到這個問題。相當混亂,請回答一些例子。爲什麼我們需要主鍵,它與索引有什麼關係

+0

可能有[主鍵或唯一索引?]的副本(https://stackoverflow.com/questions/487314/primary-key-or-unique-index) – Szymon

+0

[主鍵和唯一鍵之間的區別] (https://stackoverflow.com/questions/9565996/difference-between-primary-key-and-unique-key) – krokodilko

+0

還有一篇文章[Wikipedia - unique keys](https://en.wikipedia.org/wiki/Unique_key) – krokodilko

回答

0

有主鍵的優點是什麼?

主鍵或誘導而迫使列有兩個條件 -

  1. 獨特價值
  2. NOT NULL

所以,當一個錶行插入它必須遵循這兩個條件。如果表已經有一些記錄,它會檢查唯一性,同時添加約束。如果該屬性有重複條目,那麼你不能添加主鍵約束。

主鍵與索引的關係如何?

當您聲明屬性爲PRIMARY KEY時,默認情況下將在該屬性上創建索引。 這有助於在記錄數量過高時更快地訪問記錄。 (=>更快的抓取)。

但是對於一個小表索引會減慢速度,因爲每次插入/更新行時都需要更新索引。

+0

以防萬一我將所有記錄都視爲唯一記錄。正如我提到的一個例子,初級將如何增加優勢。你能否按照 –

+0

的描述在屬性上添加主鍵在記錄上創建索引。所以性能會更好,只有獨特的記錄(沒有索引)情況並非如此。另外,唯一的列可以爲空,主要不能。除此之外,我沒有看到任何其他原因。希望這可以幫助 –

相關問題