uuid最好是用代码来生成呢,还是在数据库里直接生成就好

既然在数据库里(比如mysql),就可以直接生成uuid,那为啥大部分情况,还是在代码中生成。

建议用代码生成器,后面扩展更加灵活方便,如果以后是分布式系统,考虑用分布式主键生成器。另外如果是主键,不建议用uuid,uuid一是string,太长,检索速度慢,二是无须,数据都是乱的,考虑一下数值型吧。

生成全局唯一ID的方式有很多,常用的方式有UUID,雪花算法(类似的很多),使用数据库生成唯一id,大致上逃不过这三种方式
以上方式各有优劣,我是非常看好使用数据库生成唯一id,我分享一下这种方式如何生成唯一id
1、建一张表,加一个id列,类型是long或者int64
2、生成id的线程每一次从数据库获取数据一次性获取5000个id(具体的根据并发量和数据库能够承受的量自己估计)
3、定时清理表中的数据
这样生成的id大体上自增,可排序,id长度8个字节,长度也合适,全局唯一

谈谈UUID:如果并发量不大,又没什么特殊需求,使用uuid最为简单直接,使用场景:简单业务,保证全局唯一
雪花算法:这种方式和省市县分级,我不是非常喜欢这种方式,主要的问题是需要提前规划每一段的位长度,前期设计大体上都满足不了后面的需求,改来改去,不是很方便