一、分多库,每库多张表,每个表只有一个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值;