是否有不引起数据库性能问题的UUID / GUID替代方案?

时间:2018-11-01 15:46:08

标签: uuid guid

here所述,在关系数据库上下文中使用UUID / GUID是一个坏主意。有库支持的替代方法吗?

1 个答案:

答案 0 :(得分:1)

并非很棒的博客文章。在客户端需要生成自己的主键的情况下,GUID非常有用。如果服务器可以生成密钥,请使用自动递增的整数主密钥。

让我详细说明为什么这不是一篇很棒的博客文章。他说:

  

GUID / UUID是非常随机的。因此,将索引插入到索引中意味着跳很多。

Guid实际上只是一个16字节的十六进制数;因此我可以提出一个朴素的索引,即只需制作一个可以逐位遍历的32/16数组,即可在恒定时间内完成单个插入操作。因此,可以在Log(N)的时间内完成我的朴素索引插入N个项目的操作。博客文章中的论点太糟糕了。我不确定GUID插入是否快速,但是“随机性”与算法复杂度无关。

这是一篇不错的博客文章,其中包含一些良好的链接:

https://blog.codinghorror.com/primary-keys-ids-versus-guids/

我特别喜欢此链接:

http://web.archive.org/web/20150511162734/http://databases.aspfaq.com/database/what-should-i-choose-for-my-primary-key.html

很好地讨论了不同键的权衡问题。