NutzCN Logo
问答 主键用uuid还是自增呢?
发布于 2607天前 作者 javanan 2999 次浏览 复制 上一个帖子 下一个帖子
标签:

主键用uuid还是自增呢?
oracle和mysql的自增不太一样。
那么为什么很多系统都采用主键交由数据库自增的方式呢? 这样在做数据库兼容上不是不太方便了吗?
是uuid 会导致性能的下降吗?和自增相比。

在数据库集群的时候如果用自增,不会导致id重复吗?

11 回复

所以呢, nutzcn采用另外一个策略, 主键生成器, 通过额外的服务来提供主键生成, 例如redis的incr生成自增键, 解决数据库差异和集群问题

@wendal
在数据库集群的时候 (主键自增的时候),A库 和B库 都有 用户表的时候, 如系统先向A库插入一个用户,这时候用户id为1,再向B库插入一个用户,这时候用户id 还是 1 这样不是就导致用户id重复了吗?

这个问题会遇到?

@wendal 用额外的 服务器做主键生成器, 和直接用 uuid 有什么区别吗?

例如mysql双主模式, 会设置主键自增+2, 就是每次自增+2,而非+1, 效果就是mysql服务器A总是单数,mysql服务器B总是双数

oracle就使用seq咯

理论上uuid也会重复的, 而且生成uuid的过程不可控

所以有2个方向嘛, 比较简单的uuid方案, 比较可控的id生成服务器

主键用自增有什么优势呢?

@qq_a930202f 查起来快一点

uuid也可以称作:分布式主键

使用redis的incr生成。

添加回复
请先登陆
回到顶部