自增最大的问题是想要知道 id 还要读一次。。。uuid 和雪花就没这毛病。不过 uuid 虽然简单,但是不利于索引。
so,还是雪花好了,写个雪花 id 生成器没几行代码。
Rocketer
2021-07-31 01:07:29 +08:00
千万别用 uuid,这玩意效率不高,暗坑不少。
比如版本问题,你如果用多种数据库(比如 SQL Server 和 MongoDB ),你会发现他们默认的 uuid 版本不一样,不专门设置一下就无法愉快地一起玩耍。
我现在都用雪花算法,直接用来做主键就好了,无须再多一个 primary_key 。
jorneyr
2021-07-31 08:14:28 +08:00
我喜欢用雪花,因为在业务层未插入到数据库的时候就可以生成好 ID,尤其是同一个业务中要处理多个用 ID 关联的对象,业务层可以把他们依赖的 ID 生成好直接使用,处理好关系后用事务保存到数据库。如果用自增 ID,得按照先后顺序保存到数据库并且查询得到最新的 ID,然后再处理关系,比雪花麻烦一些,业务逻辑写起来也麻烦。