分配用户唯一id的问题

J2EE 码拜 9年前 (2016-05-28) 1062次浏览
现在有个需求就是给用户分配唯一的id,id是递增的,本人的做法是用max()查出id的最大值,然后+1update,这个过程中能否需要锁表.
假如锁定整张表是不是对性能影响太大了
解决方案

20

肯定影响性能啊,不知道你那个不用自增id是什么意思,是只能去查出来+1吗,分配唯一id的方式倒是有其他的,你可以用时间因子去生成唯一的id,就是不知道你能不能用

10

引用:
Quote: 引用:

肯定影响性能啊,不知道你那个不用自增id是什么意思,是只能去查出来+1吗,分配唯一id的方式倒是有其他的,你可以用时间因子去生成唯一的id,就是不知道你能不能用

用户有一个id从20000000开始,本人原来就是用表的自增主键+20000000,但是后来脑残老板要求本人改一批id(例如他想要个88888888),
这样两个id就对不上了,本人就需要加个判断,假如这个8位的id呗占用就分配一个从92000000开始的id,这样就有了上面的需求

oh,shit.果然程序猿都是被需求逼疯的,顺便问一下id应该仅仅就是一个id,你这个莫非还兼具了用户标识的作用(也就是说用户可以看到,要不然非要8888干嘛,就是图吉利跟id也没毛关系啊,这个用户根本都看不到)

10

oracle的序列自增,有个缺点,就是数据未增加成功,序列也会自增一次,哪这种情况就不能满足我们的业务标准.
所以我们会选择max(id)+1方式进行id的设置,但你提到的锁表,本人那建议把这个动作交给事务管理来完成.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明分配用户唯一id的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)