大表記錄由複合鍵標識,該鍵的組成部分是什麼?使它合成有什麼好處?大表和複合鍵
大表和複合鍵
回答
對於非常大的表格(行方向),給每個單獨的行一個唯一的ID將受限於您代表唯一ID的數據類型。例如,如果您將唯一標識存儲爲基本int32,那麼當您有超過2147483647個條目(int32的最大值)時會發生什麼?
我將使用亞馬遜的一個示例,試圖跟蹤客戶查看了哪些項目。你可以想象一個名爲「items_customer_has_viewed」的表格。對於單個客戶來說,爲此表提供唯一的ID不會成爲問題。也許一個客戶在一年內只能查看亞馬遜上的50個項目,並且該數據庫可能會保持較小時間,並保持在2147483647的限制以下。但是,當您擁有數百萬用戶時,唯一ID的值將變得過大。
您可以選擇將您的唯一標識存儲爲字符串或blob,但這會降低數據庫速度並需要額外的計算。
解決方案是使用複合鍵。您不需要具有標識單個「視圖」或「客戶已查看的項目」的唯一標識,而是通過兩個外鍵(一起形成一個組合主鍵)來識別該「視圖」。現在,您只需要少於2147483647個客戶,並且少於2147483647個項目,並且您會一切正常。你將不會有問題存儲的ID。
因此,大多數數據庫將允許非常大的數字數據類型,因此您不需要求助於字符串,斑點或組合鍵。例如,PostgreSQL序列在默認情況下會生成最多2^63-1,大整數類型的範圍可達9,223,372,036,854,775,807。數字類型將在小數點前處理多達131,072位數字。因此,如果您需要使用其中一種技巧來存儲多行數據,那麼您已經對數據庫做出了極差的選擇。 –
- 1. SQL表中有複合鍵和主鍵
- 2. 複合鍵和外鍵
- 3. 複合主鍵和鏈接表規則
- 4. 休眠複合表和關鍵問題
- 5. 查找表複合鍵
- 6. 如何創建複合外鍵的表,複合主鍵
- 7. 橋表的主鍵或複合/複合鍵
- 8. 休眠和複合鍵
- 9. Ebean和PlayFramework的複合鍵
- 10. 複合鍵和形式
- 11. 複合鍵和繼承
- 12. Bigtable和複合主鍵
- 13. JPA /休眠和複合鍵
- 14. MongoDB和複合主鍵
- 15. 複合列鍵與複合排按鍵
- 16. SQL外鍵的表的複合主鍵
- 17. 帶複合鍵/外鍵的映射表
- 18. 複合主鍵和外鍵jpa
- 19. JPA:複合主鍵和外鍵
- 20. $複合鍵的最大評估
- 21. SQL Server中的複合表,主鍵,外鍵和索引
- 22. 與複合鍵
- 23. 複合鍵
- 24. 複合鍵
- 25. 複合外鍵
- 26. SQL複合鍵
- 27. 複合外鍵
- 28. 複合主鍵
- 29. 複合外鍵
- 30. 複合鍵2003
哪個鍵是「這個鍵」? – philipxy
<複合鍵> – Abdussalam
你的問題不清楚。你在問什麼「組合鍵」的含義? – philipxy