mysql 集群 主键_基于Mysql的集群统一Id生成器

一、分多库,每库多张表,每个表只有一个id字段,设置为BIGINT、主键、无符号;

二、假设共计分2个库,每个库4张表,设置每个表的初始值;

insert into db_0.id_tab_000(id) values(1);

insert into db_0.id_tab_001(id) values(2);

insert into db_0.id_tab_002(id) values(3);

insert into db_0.id_tab_003(id) values(4);

insert into db_1.id_tab_000(id) values(5);

insert into db_1.id_tab_001(id) values(6);

insert into db_1.id_tab_002(id) values(7);

insert into db_1.id_tab_003(id) values(8);

三、开发接口,取id,每次接口操作哪个库哪个表,有一个随机算法,算出落在哪个库那张表上,根据数据库切换数据源;

四、dao层Mapper.xml设置更新id语句

UPDATE id_tab_${tableIndex} SET `id` = LAST_INSERT_ID(`id` + #{stepLength});

五、rtnData.id即全局唯一id值;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值