关注
如何生成唯一主键
1.利用数据库自增ID,特点是趋势递增,全局唯一,需要保证高可用环境下,使用不同初始值+相同步长,但是扩展性有限制
2.利用单点服务串行化生成递增ID,特点是全局递增,全局唯一,例如存储在redis中,并利用redis原子操作生成,性能瓶颈取决于redis读写性能
3.每台机器自己生成UUID,特点是无序,全局唯一,一般是字符串的数据类型使得检索低效,无序的特性使得插入低效
4.每台主机获取当前的毫秒数,特点是趋势递增,可能出现全局不唯一,不推荐
5.参考snowflake算法,41bit毫秒数+10bit机器序号+12bit毫秒内序列号,特点是趋势递增,全局唯一
根据业务权衡选取2或者5,其次是1,其次是3,最后是4
UUID的缺点
无序,全局唯一,一般是字符串的数据类型使得检索低效,无序的特性使得插入低效
另外附上:
[UUID如何保证唯一性?](https://zhuanlan.zhihu.com/p/70375430)
[UUID是如何保证唯一性的?](https://www.zhihu.com/question/34876910)
查看原帖
点赞 评论
相关推荐
投递CVTE等公司10个岗位 >
点赞 评论 收藏
转发
昨天 23:56
华中科技大学 土木类 点赞 评论 收藏
转发
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
352767次浏览 7294人参与
# 你更愿意参加线上面试还是线下面试? #
4745次浏览 73人参与
# 晒一晒我的offer #
2767488次浏览 49502人参与
# 如何确定求职岗位 #
101000次浏览 2395人参与
# 华为求职进展汇总 #
433676次浏览 4353人参与
# 机械人怎么评价今年的华为 #
49386次浏览 405人参与
# 非技术岗薪资爆料 #
5065次浏览 117人参与
# 第一次面试 #
13861次浏览 212人参与
# 如果再来一次,你还会学硬件吗 #
16802次浏览 332人参与
# 海信求职进展汇总 #
6798次浏览 91人参与
# 通信硬件薪资爆料 #
137421次浏览 979人参与
# 来聊聊机械薪资天花板是哪家 #
18342次浏览 140人参与
# 找工作,你会甘心进小厂还是猛冲大厂 #
22089次浏览 212人参与
# 除了offer,现在你还缺点啥? #
2058次浏览 45人参与
# 应届生应该先就业还是先择业 #
10735次浏览 103人参与
# 通信硬件人笔面经互助 #
63699次浏览 1417人参与
# 百度工作体验 #
18999次浏览 205人参与
# 讲讲我经历过的年终奖 #
5816次浏览 76人参与
# 租房前辈的忠告 #
19799次浏览 1579人参与
# 软件开发薪资爆料 #
536288次浏览 9215人参与