我有一個場景,其中有兩個表具有唯一元素,並且兩個表都包含相同類型的記錄。現在一張桌子有主鍵,另一張沒有。所以如果我在這兩個表中都有獨特的元素,那麼有主鍵的優點是什麼。以及主鍵如何與索引相關聯。 我在諾基亞採訪中被問到這個問題。相當混亂,請回答一些例子。爲什麼我們需要主鍵,它與索引有什麼關係
-5
A
回答
0
有主鍵的優點是什麼?
主鍵或誘導而迫使列有兩個條件 -
- 獨特價值
- NOT NULL
所以,當一個錶行插入它必須遵循這兩個條件。如果表已經有一些記錄,它會檢查唯一性,同時添加約束。如果該屬性有重複條目,那麼你不能添加主鍵約束。
主鍵與索引的關係如何?
當您聲明屬性爲PRIMARY KEY
時,默認情況下將在該屬性上創建索引。 這有助於在記錄數量過高時更快地訪問記錄。 (=>更快的抓取)。
但是對於一個小表索引會減慢速度,因爲每次插入/更新行時都需要更新索引。
+0
以防萬一我將所有記錄都視爲唯一記錄。正如我提到的一個例子,初級將如何增加優勢。你能否按照 –
+0
的描述在屬性上添加主鍵在記錄上創建索引。所以性能會更好,只有獨特的記錄(沒有索引)情況並非如此。另外,唯一的列可以爲空,主要不能。除此之外,我沒有看到任何其他原因。希望這可以幫助 –
相關問題
- 1. 模型中有什麼?爲什麼我們需要使用它
- 2. 什麼是仿函數,爲什麼我們需要它們?
- 3. 什麼是EJB回調,爲什麼我們需要它們?
- 4. 裝配需要什麼?爲什麼我們使用它們?
- 5. 什麼是R中的因子,爲什麼我們需要它
- 6. Windows上的Spark - 什麼是winutils,爲什麼我們需要它?
- 7. ELF文件 - 什麼是部分,爲什麼我們需要它?
- 8. 什麼是mcrypt,爲什麼和我們需要它在哪裏?
- 9. Maven快照究竟是什麼,爲什麼我們需要它?
- 10. 什麼是伴侶對象,爲什麼我們需要它?
- 11. 爲什麼我們需要「嘗試」關鍵字?
- 12. 爲什麼我們需要base()關鍵字
- 13. 數據庫關係我爲什麼要使用它們?
- 14. 爲什麼我們需要表之間的「關係」?
- 15. 我們爲什麼需要,使用貓鼬有什麼好處
- 16. 爲什麼Flask-SQLAlchemy需要主鍵?
- 17. DavLockDB:我們需要什麼?
- 18. 爲什麼主鍵比索引快?
- 19. 爲什麼我需要Iterator接口,爲什麼要使用它?
- 20. 爲什麼我們已經有CSS時需要ASP.NET主題?
- 21. 我需要什麼樣的關係
- 22. 爲什麼需要virtual關鍵字?
- 23. 爲什麼Session.Flush()需要保持關係?
- 24. 如果底層表已被索引,我們爲什麼需要全文索引
- 25. C#代表,爲什麼我們需要它們?
- 26. 具有聚簇唯一索引的非空列。爲什麼需要主鍵?
- 27. 爲什麼我們需要simple_one_for_one?
- 28. 爲什麼我們需要TensorFlow tf.Graph?
- 29. 爲什麼我們需要使用prompt.start()?
- 30. 爲什麼我們需要scalaz.stream迭代?
可能有[主鍵或唯一索引?]的副本(https://stackoverflow.com/questions/487314/primary-key-or-unique-index) – Szymon
[主鍵和唯一鍵之間的區別] (https://stackoverflow.com/questions/9565996/difference-between-primary-key-and-unique-key) – krokodilko
還有一篇文章[Wikipedia - unique keys](https://en.wikipedia.org/wiki/Unique_key) – krokodilko