首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当大量数据同时传入时,如何在数据库中生成密钥?

问当大量数据同时传入时,如何在数据库中生成密钥?
EN

Stack Overflow用户
提问于 2013-08-30 17:00:46
回答 2查看 54关注 0票数 0

使用Hibernate,Struts2,Spring框架,当数以百万计的用户同时提交信息或订单时,哪种方法更好地生成数据库的主键?

有一些选项:

1:使用"uuid“生成

2:使用"sequence“生成

3:你的解决方案...

(考虑数据的可移植性和效率)

EN

回答 2

Stack Overflow用户

发布于 2013-08-30 20:57:02

我将使用数据库来管理唯一的密钥,例如

代码语言:javascript
复制
  INSERT INTO yourTable (yourSequence.nextval(), COLUMN1, COLUMN2, ... )

在应用程序中生成自己的密钥当然可以,但如果应用程序扩展到多个服务器,如果您没有做好准备,可能会导致问题。

如果使用的是MySQL,则可以使用AUTO_INCREMENT - http://www.tutorialspoint.com/mysql/mysql-using-sequences.htm

票数 0
EN

Stack Overflow用户

发布于 2013-09-06 04:44:14

看看hibernate生成器的实现-- http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-id有多种类型。

我更喜欢HiLo算法,见What's the Hi/Lo algorithm?这里的解释,因为它为海量数据提供了很大的吞吐量。

Be aware of Guid,因为它不是很好的主键,因为它与聚集的主索引一起。

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

https://stackoverflow.com/questions/18528909

复制
相关文章

相似问题

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