http://www.dbshards.com/articles/database-sharding-whitepapers/
自动递增密钥管理。数据库管理系统提供的典型自动增量功能为插入数据库的每个新行生成一个顺序键。对于单个数据库应用程序来说,这很好,但是在使用数据库分块时,必须以协调的方式跨所有碎片管理密钥。这里的要求是为应用程序提供一种无缝的、自动化的密钥生成方法,一种跨所有碎片操作的方法,确保密钥在整个系统中是唯一的。
我不明白我们如何能够为在所有碎片上操作的应用程序提供无缝的自动密钥生成方法。
我听说过使用GUID,但是因为GUID不能保证在不同的机器上是唯一的,我看不出它将如何可靠地工作。
发布于 2011-07-20 17:36:35
发布于 2011-07-20 18:03:49
对于我开发的分布式数据库系统,我一直在努力解决这个问题,当我切换到使用GUID作为主要的唯一标识符时,所有的问题都消失了。我强烈推荐他们。不仅精细标识符在单个键定义数据域中是唯一的,而且您还可以拥有引用多个域的通用表。
我还学会了不要依赖业务数据来获取数据库中真正的唯一密钥,客户认为这些密钥是唯一的,但是当他们想要更改这些密钥时总是会发生意外,而且很多时候都有未定义的情况。
https://stackoverflow.com/questions/6765823
复制相似问题