如here所述,在关系数据库上下文中使用UUID / GUID是一个坏主意。有库支持的替代方法吗?
答案 0 :(得分:1)
并非很棒的博客文章。在客户端需要生成自己的主键的情况下,GUID非常有用。如果服务器可以生成密钥,请使用自动递增的整数主密钥。
让我详细说明为什么这不是一篇很棒的博客文章。他说:
GUID / UUID是非常随机的。因此,将索引插入到索引中意味着跳很多。
Guid实际上只是一个16字节的十六进制数;因此我可以提出一个朴素的索引,即只需制作一个可以逐位遍历的32/16数组,即可在恒定时间内完成单个插入操作。因此,可以在Log(N)的时间内完成我的朴素索引插入N个项目的操作。博客文章中的论点太糟糕了。我不确定GUID插入是否快速,但是“随机性”与算法复杂度无关。
这是一篇不错的博客文章,其中包含一些良好的链接:
https://blog.codinghorror.com/primary-keys-ids-versus-guids/
我特别喜欢此链接:
很好地讨论了不同键的权衡问题。