为什么我应该选择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