现在有个需求就是给用户分配唯一的id,id是递增的,本人的做法是用max()查出id的最大值,然后+1update,这个过程中能否需要锁表.
假如锁定整张表是不是对性能影响太大了
假如锁定整张表是不是对性能影响太大了
解决方案
20
肯定影响性能啊,不知道你那个不用自增id是什么意思,是只能去查出来+1吗,分配唯一id的方式倒是有其他的,你可以用时间因子去生成唯一的id,就是不知道你能不能用
10
oh,shit.果然程序猿都是被需求逼疯的,顺便问一下id应该仅仅就是一个id,你这个莫非还兼具了用户标识的作用(也就是说用户可以看到,要不然非要8888干嘛,就是图吉利跟id也没毛关系啊,这个用户根本都看不到)
10
oracle的序列自增,有个缺点,就是数据未增加成功,序列也会自增一次,哪这种情况就不能满足我们的业务标准.
所以我们会选择max(id)+1方式进行id的设置,但你提到的锁表,本人那建议把这个动作交给事务管理来完成.
所以我们会选择max(id)+1方式进行id的设置,但你提到的锁表,本人那建议把这个动作交给事务管理来完成.