Packet for query is too large,You can change this value on the server by setting the max_allowed...

当遇到MySQL报错'Packet for query is too large'时,这通常意味着查询的数据包超过了默认的最大限制。通过检查'max_allowed_packet'变量,可以发现默认值约为1MB。解决方法包括增大该限制值,但不推荐,或者更佳的选择是实现数据分页查询,以避免内存溢出和性能问题。此问题提示我们需要合理设计查询,避免一次性加载大量数据。
摘要由CSDN通过智能技术生成

工作中生产环境出现如下报错
Packet for query is too large
第一时间想到的就是MySQL的某个属性配置问题。果不其然吗MySQL默认每次查询的body最多不超过大概是1M左右,这个可以通过如下命令在自己的MySQL中查看

show VARIABLES like ‘%max_allowed_packet%’;

解决方式有两种

第一种
改变这个packet的限制值
set global max_allowed_packet = 610241024
但是一般不建议这样做

第二种
自己做分页啦,你还在想啥呢,一次查这么多数据,不怕full gc啊,不怕内存溢出啊,不怕OOM啊?
好好反思一下为什么一次性查这么多数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值