【发布时间】:2022-01-27 00:24:25
【问题描述】:
Citus 上主键的最佳方法是什么?
UUID: 与身份/序列相反,不需要锁定。但是存储成本高,最终查询成本高+会导致碎片。
序列 - 身份 在创建实体时导致瓶颈。存储成本更低,查询更快+没有碎片。
如果我们想成为可扩展的项目,使用 UUID 会更好吗?
对于分片,建议最终使用 UUID。
它在 Citus 上的表现如何?
我将给出一个架构示例:
User
UserId uuid/bigint?
Device
Device Id uuid/bigint?
UserId (here for the distribution key)
在上面的例子中,我们要根据UserId分配用户数据,例如他的Devices。 主键 ID 类型应该是什么? 如果 UUID 是答案,我们应该害怕节点中的碎片吗?
【问题讨论】:
标签: postgresql primary-key uuid bigint citus