使用Hibernate,Struts2,Spring框架,当数以百万计的用户同时提交信息或订单时,哪种方法更好地生成数据库的主键?
有一些选项:
1:使用"uuid“生成
2:使用"sequence“生成
3:你的解决方案...
(考虑数据的可移植性和效率)
发布于 2013-08-30 20:57:02
我将使用数据库来管理唯一的密钥,例如
INSERT INTO yourTable (yourSequence.nextval(), COLUMN1, COLUMN2, ... )在应用程序中生成自己的密钥当然可以,但如果应用程序扩展到多个服务器,如果您没有做好准备,可能会导致问题。
如果使用的是MySQL,则可以使用AUTO_INCREMENT - http://www.tutorialspoint.com/mysql/mysql-using-sequences.htm
发布于 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,因为它不是很好的主键,因为它与聚集的主索引一起。
https://stackoverflow.com/questions/18528909
复制相似问题