首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PK生成性能: DB生成序列或app生成随机

问PK生成性能: DB生成序列或app生成随机
EN

Stack Overflow用户
提问于 2016-04-02 07:13:12
回答 1查看 98关注 0票数 3

我正在尝试理解,是让数据库管理ID /序列生成以用作PK,还是让应用程序简单地生成自己的ID,比如随机的64位数字,哪个更好。

我怀疑应用程序+随机生成将会更有性能,因为需要管理的并发性更少,但话又说回来,如果数据库生成一个序列,那么它总是知道下一步是有序的,并且可以优化索引维护。

EN

回答 1

Stack Overflow用户

发布于 2016-04-02 08:35:13

PK背后的理念是它们在设计上是独一无二的。使用64位随机数在设计上并不是唯一的-因此您必须为PK冲突准备代码,然后随机化新的id,并将新行再次提交到数据库。这可能是一个相当麻烦的问题。让编写者以并发方式插入新数据最终会使这些问题变得更糟。

数据库可以很好地生成唯一的is毕竟,PK问题是非常标准的东西,并且有很好的标准解决方案。

ID生成器本身是一个瓶颈-因为它必须确保唯一性,即使它是从多个会话并行调用的。例如,Oracle有序列生成器,它预先生成并“缓存”每个会话的即将到来的数字,这样就解决了并发性问题。

我们可以从Mr.Tom Kyte学到的一件重要的事情是:使用表中的真实数据和真实负载来衡量你的用例。这是真正智慧的唯一来源:)

我的两点意见:数据库引擎有很大的不同!共享你正在使用的数据库有助于获得更好的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36367227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档