爲什麼我應該選擇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. Simple.Data與非自動遞增主鍵(uuid_short)
- 3. 自動遞增列主鍵
- 4. 自動遞增號碼
- 5. 複合主鍵與自動遞增主鍵
- 6. C#自動遞增的主鍵
- 7. MySQL:多個主鍵和自動遞增
- 8. mysql自動遞增主鍵耗盡
- 9. 使用saveToCassandra時自動遞增主鍵()
- 10. 設置自動增量主鍵的起始號碼
- 11. 自定義UUID的主鍵
- 12. MySQL Workbench爲主鍵自動生成UUID
- 13. 創建自動遞增鍵值與pyspark
- 14. CakePHP ACL與UUID主鍵
- 15. 自動增量主鍵
- 16. 主鍵自動增量
- 17. 使用MySQL的正常主鍵自動遞增或複合鍵
- 18. 自動遞增辭典鍵
- 19. 兩列主鍵,自動遞增和外鍵
- 20. 無法主鍵/唯一鍵/自動遞增加入此列
- 21. 重複鍵主鍵自動增量
- 22. 帶複合鍵的外鍵與自動遞增
- 23. 自動遞增的複合主鍵 - SQLITE3 + Python的
- 24. 自動遞增的主鍵連接表中的SQL Server
- 25. 如何調用自動遞增的MySQL的主鍵Java變量
- 26. 移民設置主鍵的值0和自動遞增的PostgreSQL
- 27. 從一個自動遞增的主鍵列出丟失的ID
- 28. 自動增量與外鍵
- 29. 自動遞增的主字母數字鍵
- 30. 非主鍵列的自動遞增數字生成
另一方面,我們考慮在應用程序中使用UUID版本2進行問責 - 它包含確切的時間(以微秒爲單位)和創建它的機器的MAC地址。 – 2011-05-31 17:48:02