开发者社区> 问答> 正文

通过mybatis插入mysql上万条数据,代码停在插入方法不继续往下运行?报错

最近在做一个同步线上数据的需求,先从线上拉取数据,然后插入本地数据库,数据量单次是几千至一万,通过mybatis插入mysql的时候,插入两三千条没问题,但是七八千条甚至上万条就会出现代码卡在插入方法不继续往下执行的情况,我去看mysql实际上数据是全部插入进去的,代码也不报错,暂时的解决方法是进行分页插入,但是还是想知道是哪里的问题,希望得到各位大佬的指点

展开
收起
爱吃鱼的程序员 2020-06-06 10:26:40 1139 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>插入时间太长,超时了吧。</p>
                    
    
                            应该不是超时,我看了下插入一万几秒钟后数据库就有全部数据了,但是代码却不往下执行了
                        
    
                        <p>可能内存溢出,程序挂了</p>
                    
    
                            怎么才能准确的判断是不是内存溢出呢
                        
    
                        <p>打印一下stack看看是卡在哪个环节了,贴一下图看看</p>
                    
    
                            求指教
                        
    
                            就是卡在插入语句,他不往下执行也不报错,该怎么打印呢
                        
    
                        mysql有插入限制 需要自行分批插入
                    
    
                            限制瓶颈有确定的值么
                        
    
                        sql语句长度限制.my.ini中有相关配置 可以加大,不过对于不确定sql有多大的情况还是自行分批插入
                    
    
                        <p>批量insert,比如1w的数据 分割成10份1000的数据,循环10次</p>
                    
    
                            嗯,谢谢,这个解决方案我知道 我只是想弄清楚为啥数据成功插进数据库了,然后代码不往下执行,也不报错
                        
    
                        <p>我刚才换成了本地库,他报内存溢出了,将本地库max_allowed_packet从默认的1M改成10M成功插入了,我们测试库不知道什么情况,数据可以成功插入,代码卡死不往下执行,连错都不报,可以断定是测试数据库的问题了,谢谢各位!</p> 
    

    2020-06-06 10:26:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像