Citus上主键的最佳方法是什么?
UUID: 不需要锁,与身份/序列相反。但是存储成本高,最终查询 + 会导致碎片。
序列 - 身份 在创建实体时导致瓶颈。存储和查询成本更低,速度更快+没有碎片。
如果我们想成为可扩展的项目,使用 UUID 会更好吗?
对于分片,建议最终使用 UUID。
它在Citus上的表现如何?
我将给出一个模式示例:
User
UserId uuid/bigint?
Device
Device Id uuid/bigint?
UserId (here for the distribution key)
在上面的例子中,我们要根据 UserId 来分发用户数据,例如他的 Devices。主键 ID 类型应该是什么?如果 UUID 是答案,我们应该害怕节点中的碎片吗?