ppgjx 发表于 2022-8-9 13:12

时间戳做数据库主键合适吗?

我这里不是指的数据库字段是时间戳,数据库字段是int,然后我系统生成毫秒级的时间戳插入,我在想毫秒级的时间戳插入应该不会造成主键冲突把,数据库插入最少也是1m秒而且是加锁的,怎么会产生主键冲突呢?

iawyxkdn8 发表于 2022-8-9 13:19

不合适的!

layuai 发表于 2022-8-9 13:36

确实,万一多方同时操作就容易冲突,有这个可能性塞

大恩恩 发表于 2022-8-9 13:38

用雪花算法

tanghengvip 发表于 2022-8-9 14:08

主键用自增id就好了吧,毫秒级时间戳在并发场景下还是有概率重复的

liyangit 发表于 2022-8-9 14:15

本帖最后由 liyangit 于 2022-8-9 14:18 编辑

不太合适,很早前 我用过时间戳做流水单号,绝对会重复的,要么就是时间戳再加随机数拼接,要么就 加锁, 不可能每个表新增都要去加上并发预处理,还不如 UUID了,最省事是 自增ID

狄人3 发表于 2022-8-9 14:21

时间戳绝对会重复,数据一大就重复

62070F 发表于 2022-8-9 14:44

UUID都不是很适合,不建议用时间戳,数据一多就会有不可控性,改起来也比较麻烦,还是用自增ID吧

lcz300400 发表于 2022-8-9 15:32

在 时间戳 后面再加一个3位数的随机数应该不会有冲突

z746090883 发表于 2022-8-9 15:39

我做过一个商城的系统。防止订单号通途。订单号后加上了时间戳。但是订单号也出现重复。不建议你用时间戳做主键。并发太高必重复。我建议你用自增ID或者GUID做主键。GUID的算法你可以百度下。一定不会重复
页: [1] 2
查看完整版本: 时间戳做数据库主键合适吗?