0

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

有一些选择:

1:使用“uuid”生成

2:用“序列”生成

3:你的解决方案...

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

4

2 回答 2

0

我会使用数据库来管理唯一键,例如

  INSERT INTO yourTable (yourSequence.nextval(), COLUMN1, COLUMN2, ... )

在应用程序中生成自己的密钥肯定会起作用,但如果应用程序扩展到多台服务器,如果您不为此做好准备,可能会导致问题。

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

于 2013-08-30T12:57:01.963 回答
0

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

我更喜欢 HiLo 算法,请参阅此处的解释What's the Hi/Lo algorithm?因为它为海量数据提供了巨大的吞吐量。

请注意 Guid,因为它不是很好的主键,因为它与聚集主索引一起使用。

于 2013-09-05T20:44:14.443 回答