New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
大批量插入数据(千万级)时,自动生成的id会有冲突 #227
Comments
调用代码请提出,描述内容太简单了? |
我遇到的问题和你的一样,希望尽快解决一下该问题吧!导致该问题的主要原因是机器位占用的比重太大,还有就是可以增加随机位或者增加本地自增位去保证,再增加id位的长度解决问题 @qmdx @guchengod |
@qmdx 我晚些时候提交一个这个bug的修复代码吧!大致的实现思路如我上诉的,如何? |
@FelixLiuSheng PR 过来看看 |
@qmdx 顶级IService的 boolean insertBatch(List entityList, int batchSize);方法 每次插入5000数据 一千万数据重复大概几十条 |
我今天下午进行了一次调试,在单机多线程的情况下进行无数次测试都是OK的,但是在多机不指定机器编号的时候计算出来的是会出现问题的,再说对于docker这种镜像方式的部署,出现机器重复的可能很大,个人建议做一下更改即可或者做一个zookeeper之类的去维持机器的唯一性 |
@FelixLiuSheng 单机下确实有冲突的
|
有2个问题 |
@yjjdick 不是 Id 你数据库要设置自增, mp 不支持复合主键 |
@qmdx 我们数据库表很多业务情况都是用了双主键形式的表结构,不知道plus的activeRecord我这边用什么办法可以支持双主键吗,我们另外个项目用jfinal的ORM的active record是支持的我相信plus也应该有办法可以做到请教一下有什么解决方案 |
@yjjdick 要支持这个很多 ById 的意味着有问题,所以建议每一张表都给予物理主键哪怕没有意义 |
idWorker 雪花算法 与 机器码 进程 id 时间有关系,出现该问题,注意查看每个可能的因素是否干扰 |
此问题有解决的吗,我的id 用的是默认的 雪花算法,而且我还是单机情况下 就没整明白为什么重复了 |
No description provided.
The text was updated successfully, but these errors were encountered: