1. 我是皮皮虾首页
  2. 编程开发

面试题:mysql中自己实现自增id

面试官其实想考察的是如何实现分布式趋势自增ID。在mysql中如果给字段增加auto_increment属性,但是出现分库分表分布式的场景,那么单表的自增id并不少全局自增。

ID自增服务

独立出一个服务,专门为其他分布式服务提供自增id。其底层还是使用mysql的auto_increment,在性能上瓶颈还是在数据库中

分布式mysql数据库

多个mysql实例同一个id自增,设置相同的步长+不同的偏移量

比如mysql1,偏移量为1,步长为3,那么它的自增id为:1,4,7,10…

mysql2,偏移量为2,步长为3,自增id为2,5,8,11…

mysql3,偏移量为3,步长为3,自增id顺序为3,6,9,12…

redis/zookeeper自增实现

可以使用redis incr自增的方式获取全局自增

雪花算法/美团(Leaf)/百度(uid-generator)/滴滴(Tinyid)号段模式

这里不一一介绍了,有兴趣的可以去查看具体实现

原创文章,作者:站长,如若转载,请注明出处:https://wsppx.cn/1262/%e7%bd%91%e7%bb%9c%e5%bc%80%e5%8f%91/

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注