java - com.mysql.jdbc.PacketTooBigException :Packet too long to query

标签 java mysql

我正在开发 mysql 和 java 应用程序 我需要在数据库中保存尽可能多的文件和其他记录。它应该支持至少 500 万条记录。

我的问题是:用文件保存这么大的记录非常困难,我可能会得到“查询数据包太大”异常。

我有两个选择:

  1. 增加 MAX_ALLOWED_PACKET 的大小

  2. 使用某些作业触发器存储限制内的记录(例如超过 300k 记录,然后拆分限制内的记录并将其保存在不同的查询中,但不确定如何拆分记录)。

我不想增加 MAX_ALLOWED_PACKET 的大小,因为用户可以输入任意数量的记录。假设我们增加大小以接受 500k 记录,但稍后用户发送一百万条记录进行插入,然后再次会遇到相同的异常。

有没有更好的解决方案?

最佳答案

我找到了解决方案...而不是直接处理 txt 文件,我先将其压缩,然后发送进行插入,它能够处理 500 万条记录。

在这里发帖,如果有人遇到同样的问题,那么他可以尝试这个解决方案。

关于java - com.mysql.jdbc.PacketTooBigException :Packet too long to query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37250109/

相关文章:

mysql - MySQL生成随机经纬度

php - 为什么我的 MySQL 字段在更新时重置为 null?

java - 使用欧几里得算法的 GCD 程序

java - 通用对类

java - 查找属于框架的所有模式对话框

java.net.URI 仅解析查询字符串

java - 缺少带开关的返回语句

mysql - 在同一台计算机上使用 mySQL Server (Xampp) 和 SQL Server

mysql - 外键循环引用困境

php - 可以使用外部 MySQL 数据库运行本地 PHP 脚本吗?