为什么我应该为实体主键的自动增量编号选择UUID?有什么优点和缺点?
答案 0 :(得分:11)
Andrey和Mjg都有不错的观点,但我会添加一个重要的相关性能问题。
通过数据库和密钥生成的分离,还允许在对象之间具有复杂关系的应用程序使用适当的密钥创建它们,以便可以进行批量插入。
在自动增量的情况下,所有拥有关系的对象(即具有外键的表)必须等待关系的另一侧(即外键来自的表)保存,查询分配的ID,然后单独更新记录以前的记录。
答案 1 :(得分:8)
UUID是全局唯一的,可以并行生成,而无需在群集数据库服务器之间进行通信。所以"Object IDs are more synergistic with sharding and distribution."。 UUID通常以128位存储。
自动递增的整数更加用户友好(无论如何,更短,更难忘),并自动允许按插入顺序排序。整数通常以32位或64位存储。
答案 2 :(得分:4)
您可以独立生成它们的主要专业人士。 Con是它更大。