爲什麼我應該選擇UUID作爲我實體的主鍵的自動遞增號碼?優缺點都有什麼?UUID與主鍵的自動遞增號碼
14
A
回答
4
您可以獨立生成它們的主要專業人員。 Con是它更大。
8
UUID是全局唯一的,並且可以在羣集DB服務器之間沒有通信的情況下並行生成。所以"Object IDs are more synergistic with sharding and distribution."。 UUID通常以128位存儲。
自動遞增的整數更加用戶友好(無論如何,更短,更難忘),並自動允許按插入順序排序。整數通常以32或64位存儲。
10
Andrey和Mjg都有很好的觀點,但我會添加一個相關的性能問題,這個問題很重要。
隨着數據庫和密鑰生成的解耦,還允許在對象之間具有複雜關係的應用程序使用鍵就地創建它們,以便可以進行批量插入。
在自動遞增的情況下,所有擁有關係的對象(即具有外鍵的表)必須等待關係的另一方(即,外鍵來自該表)保存,查詢分配的ID,然後單獨更新記錄以前的記錄。
相關問題
- 1. 不使用主鍵的自動遞增號碼的原因
- 2. 使用saveToCassandra時自動遞增主鍵()
- 3. mysql自動遞增主鍵耗盡
- 4. MySQL Workbench爲主鍵自動生成UUID
- 5. 創建自動遞增鍵值與pyspark
- 6. CakePHP ACL與UUID主鍵
- 7. 兩列主鍵,自動遞增和外鍵
- 8. 無法主鍵/唯一鍵/自動遞增加入此列
- 9. 如何調用自動遞增的MySQL的主鍵Java變量
- 10. 從一個自動遞增的主鍵列出丟失的ID
- 11. 對於Oracle中的非主鍵列自動遞增
- 12. 自動遞增的字段不是一個主鍵
- 13. 現有表中添加自動遞增的主鍵 - SQL
- 14. MS SQL Server 2012的自動遞增和主/外鍵
- 15. 使用Python/MySQL選擇自動遞增主鍵的最大值
- 16. 自動遞增主鍵的整數溢出會發生什麼?
- 17. C#ADO.NET確定新自動遞增主鍵的值?
- 18. 何時使用自動遞增的主鍵,何時不使用?
- 19. 在兩個表之間共享自動遞增的主鍵
- 20. 非主鍵列的自動遞增數字生成
- 21. 自動增加主鍵(MySQL)的問題
- 22. 的SQLite自動增加非主鍵
- 23. MySQL的:自動遞增組合鍵
- 24. MySQL的自動遞增問題編號
- 25. UUID主鍵和Memcached
- 26. 有一個主鍵以及自動遞增字段
- 27. MySQL主鍵只能自動遞增奇數 - 爲什麼?
- 28. 如何爲自動遞增主鍵生成下一個值
- 29. 如何自動遞增非主鍵? - SQL服務器
- 30. 自定義UUID作爲主鍵
另一方面,我們考慮在應用程序中使用UUID版本2進行問責 - 它包含確切的時間(以微秒爲單位)和創建它的機器的MAC地址。 – 2011-05-31 17:48:02