0
A
回答
1
我建议您使用serial
而不是UUID。为什么整数优于UUID?
- 它们占用的空间较小。这在基础表中是一个边际考虑因素,但对于外键来说是一个更大的问题。
- 整数更容易阅读和记忆。
在许多数据库中,表格使用主键进行物理排序。在这样的数据库中,UUID上的新插入将几乎总是在“之间”记录之间,这很昂贵。但是,Postgres不支持聚簇索引,因此底层数据没有排序。
有不利之处整数:
- 有一个有限的数量,虽然大整数几乎解决这个问题。
- 它们编码插入顺序信息。其实,这可能是积极的或消极的。
除了空间使用情况,我不认为在静态表上使用UUID会有很大的伤害。我强烈喜欢整数,只有在整数很难计算的情况下才会使用UUID。
+0
@a_horse_with_no_name。 。 。谢谢。 –
相关问题
- 1. 作为MySQL表主键处理大型(UUID)的最佳方式
- 2. 使用UUID作为在轨和多晶型关系的主键
- 3. 实现作为主键的UUID
- 4. UUID主键和Memcached
- 5. 主键,UUID,RecordKey表,哦我的
- 6. 将UUID用作数据库主键,Java类型是一个字节[]
- 7. 自定义UUID作为主键
- 8. 使用UUID主键的ActiveRecord迁移
- 9. 使用UUID作为Django模型中的主键(通用关系影响)
- 10. CakePHP ACL与UUID主键
- 11. 主键UUID触发器
- 12. 主键 - 用于UUID主键的VARBINARY或BLOB或VARCHAR
- 13. django使用uuid主键访问链接的模型
- 14. Eloquent模型中的UUID主键存储为uuid,但返回为0
- 15. 如何使用UUID作为Hibernate实体的主键?
- 16. 使用非主键UUID类型字段findBy *方法导致
- 17. Tell Django的模型将主键用作一组外键
- 18. PHP的mysql_insert_id()为MySQL的UUID()主键?
- 19. 插件类型键值(UUID)
- 20. 使用VBA和ADO创建MDB表,如何自动使用UUID作为主键?
- 21. 主键的SQL数据类型 - SQL Server?
- 22. Rails 5 - 迁移到使用UUID作为主键
- 23. 两个表的SQL主键
- 24. SQL外键的表的复合主键
- 25. PostgreSQL:生成自定义的MongoDB-ObjectID-like UUID作为主键
- 26. 如何列出SQL Server用户定义表类型的主键?
- 27. MySQL UUID主键 - 由PHP或MySQL生成?
- 28. MySQL Workbench为主键自动生成UUID
- 29. 休眠的UUID UUID类型
- 30. SQL:主键为DateTime的表的列表
你的意思是GUID的?总之,没有。但是,您可能需要在交易表中反映这一点。你也应该在你的数据库中保持一致。 PK的身份或GUID,不是混合。如果你有一个很好的GUID的理由 - 即记录必须是普遍唯一的,那么通过一切手段使用它。但如果你只是这样做,以避免正确建模你的数据,那么这是不好的设计实践。 –
我不同意这个问题的前提。磁盘空间很便宜,作为主键,UUID应该具有良好的索引和性能。 – ceejayoz
@ Nick.McDermaid UUID和GUID是一回事。 https://en.wikipedia.org/wiki/Universally_unique_identifier – ceejayoz