一个小问题 关于 com.mysql.jdbc.PacketTooBigException: Packet for query is too large
2024-09-07 23:21:19
这个错本身就是应为传输的数据大于mysql的max_allowed_packet参数默认值造成的;
之前遇到这个问题,一直是改max_allowed_packet的值 ,做项目遇到这个错误改了好几次,从1M改到10M,10M改到50M,50M又不够了;没有考虑到增量数据的问题,有的数据是一直增长的。
所以解决这个问题的根本,是需要在程序中,做分批次插入;
//data 为需要入库的数据,持续增长中目前3万多行,需要切分为几个list
LinkedList<LinkedHashMap<String,Object>> data=new LinkedList<LinkedHashMap<String,Object>>();
.....
//收集数据 data.add(xxxx)
......
//入库
HashMap<String,Object> map= new HashMap<>();
map.put("table_name", "tbl_consistency_check");
consCheckDao.truncateTable(map); //分批次入库(一批3000行)
Integer size=data.size();
Integer batches_size=3000;
Integer num=size/batches_size;
for(int i=0;i<num;i++) {
List<LinkedHashMap<String, Object>> tmp= data.subList(0, batches_size);
map.put("data", tmp);
consCheckDao.insertConCheckTable(map);
data.subList(0, batches_size).clear();
} List<LinkedHashMap<String, Object>> tmp_2= data.subList(0, data.size());
map.put("data", tmp_2);
consCheckDao.insertConCheckTable(map);
最新文章
- github
- 微软MVP衣明志告诉你,小白全方位攻略,逆袭互联网达人
- tracert-命令小结
- jquery 选择器 -高级使用 新的 心得
- INSTALLMENT of QValue
- 写给IOS开发工程师的网页前端入门笔记
- C# 线程问题
- Unity C#写的A*寻路
- Linux系统下基本命令
- Mysql MHA(GTID)配置(实操)
- CSS3 column属性
- Cs231n课堂内容记录-Lecture 8 深度学习框架
- mysql 按类别之用一条SQL语句查询出每个班前10名学生数据
- ES6学习笔记(数组)
- 对话框改变颜色 宽度沾满屏幕 Dialog
- mac安装CocoaPods遇到的问题及解决办法
- 第二个spring
- python操作oracle实战
- 学JS的心路历程Day28 - PixiJS -基础(二)
- 高负载PHP调优
热门文章
- prometheus consul docker redis_exporter 自动注册配置
- 微信企业号消息接口PHP SDK
- spering getBean(),IOC
- HandlerInterceptorAdapter
- 解决xunsearch热门搜索,不按照数量排序问题
- springboot 远程调试
- python的import和form...import的区别
- 说一说switch关键字的奥秘
- Rider 中无法显示DataTable,VS2019的.netCore才有DataTable可视化工具(4)
- 【BZOJ3328】PYXFIB(单位根反演,矩阵快速幂)