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