我正在尝试将我的设计理念从LAMP技术栈转移到Microsoft技术栈,我突然想到一个问题 - 什么情况下我会使用GUID呢?相比于可靠的自增int,它有哪些优缺点呢?
你可能从未遇到过需要超越自动递增ID的需求,这表明GUID通常只是为了解决问题而存在。在你熟悉的模式无法满足要求时,考虑使用它们。微软风格并不重要。
唯一实际使用场景我见过的是从两个数据源合并表格。
GUID存在一个问题:
由于它们不是顺序的,数据库将不得不努力更新索引。使用顺序id时,通常可以将其附加到末尾(或多或少)。由于GUID是随机的,因此必须将其适配到现有块中。尽管如此,我们在一些表格中使用GUID,即使在相当大的负载下,它们似乎也能正常工作。