gpt4 book ai didi

.net - 分片数据库的 ID 生成(Azure 联合数据库)

转载 作者:行者123 更新时间:2023-12-04 11:57:26 27 4
gpt4 key购买 nike

我一直在寻找一些有关 Azure 联合数据库 id 生成(联合/主键)最佳实践的文章或指南,但没有发现任何引人注目的内容。联合表不支持标识列,因此在我看来唯一实用的 id 类型是 GUID,因为尝试集中创建和使用 BigInt 会在应用程序中产生单点故障。我主要关心的是使用 GUID 而不是 BigInt 的性能影响(特别是对于表索引)。

是否有任何推荐/最佳实践(或现有库)来为分布式系统创建独特的 BigInt(或者我不应该担心使用 GUID 的性能影响?)。

[更新]

自从发布问题以来,我阅读了更多相关内容,在我看来, key 生成将成为 Azure 中的一个问题。根据此 blog来自 Microsoft 的帖子,建议使用 GUID 作为联合 key 。但是他们没有提到联合表上的所有索引(包括聚集索引)都必须包含联合键。这意味着所有这些索引都将包含 GUID,这会降低插入性能。

替代方案似乎是使用集中式 key 生成服务(正如下面西蒙提到的),该服务有其自身的缺点,即成为潜在的瓶颈和中心故障点。

我本以为 Microsoft 会对此提供更多指导,因为这肯定是每个创建联合表的人都会面临的问题!

总的来说,我决定使用集中式 key 生成服务,但这确实让我有点担心。如果有人有一些魔法技巧,我很想听听(或者如果我遗漏了一些明显的东西,请告诉我)!

最佳答案

您可以使用多种技术在应用程序中创建序列,但由于分布式特性,它们并不简单。一个非常好的方法是使用 blob storage and preconditions .

根据您的项目进度,您可能需要使用 SQL 2012 SEQUENCE并将所有序列放入一个小型非联合数据库中。 SEQUENCE 在 SQL Azure 上不可用。

关于.net - 分片数据库的 ID 生成(Azure 联合数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9320174/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com