使用UUID作为小型SQL表的主键

时间:2017-04-26 00:45:19

标签: sql node.js postgresql

我已经读过,由于大型数据集的大小和性能问题,通常不建议将UUID作为主键。

但是,在一些顶级组织表中使用它会不会有害吗?例如。 组织分支,只有少数几个条目?

1 个答案:

答案 0 :(得分:1)

我建议您使用serial而不是UUID。为什么整数优于UUID?

  • 他们占用的空间更少。这是基表中的边际考虑因素,但对于外键来说却是一个更大的问题。
  • 整数更易于阅读和记忆。

在许多数据库中,使用主键对表进行物理排序。在这样的数据库中,UUID上的新插入几乎总是在"之间。记录,这是昂贵的。但是,Postgres不支持聚簇索引,因此不会对基础数据进行排序。

整数有缺点:

  • 有一个有限的数字,虽然大的内容几乎可以解决这个问题。
  • 他们编码插入顺序信息。实际上,这可能是积极的,也可能是消极的。

除了空间使用之外,我不认为在静态表上使用UUID有很多危害。我非常喜欢整数,只在难以计算整数的情况下使用UUID。