我们正在考虑使用共享序列为数据库中所有表的主键分配 ID。其中大约有 100 个。只有一对夫妇经常和定期插入。在我们进入实际尝试和负载测试阶段之前,我们想排除它是“出于明显原因的糟糕想法”。
我们的峰值负载是每秒 1000 次插入,跨几个表。
到目前为止,我们的研究表明 - 序列生成速度不应该是问题 - 序列碎片(间隙)会发生,但不应该是问题 - id 耗尽不会是问题
我们不确定我们是否错过了其他重要的事情。我们会感谢人们的意见,尤其是那些之前尝试过并有过正面或负面经历的人的意见。
对于上下文 - 我们这样做有两个主要动机。
这样做的一个动机是我们可以定义一堆字典(我们称之为范围)并将人类可读的单词分配给这些 id,因此我们希望确保不同表中的 id 永远不会重叠。因此,在一个范围内,id 12345 可能被分配值“Green”,而在另一个范围内,它可能被分配“Verde”。(实际上,我们不会将它用于国际化,但我们可能有一天会使用它)。
另一个动机是使在现场有多个部署变得容易,并且知道(通过唯一设置每个部署的几个最高有效数字的序列)我们的部署不会重叠主键。(就像一个 GUID 精简版)。