• 作者:老汪软件技巧
  • 发表时间:2024-12-07 00:10
  • 浏览量:

测试了size=1000、size=10000、size=100000都不会报错,直到测试size=1000000,也就是in中有100百万个数据,才会报错,报错信息如下:

com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (6,888,944 > 4,194,304). 
You can change this value on the server by setting the 'max_allowed_packet' variable.

数据采用条件格式_什么可以在数据状态下输入_

从错误信息可以看出,报错原因并不是in的数据太多了(已经有一百万个了),而是sql语句太长了,超过了4,194,304个字节,也就是4M,在我的MySQL中max_allowed_packet变量的值为

_什么可以在数据状态下输入_数据采用条件格式

但是根据MySQL官网中的描述,max_allowed_packet默认值为67108864,也就是64M。

因此,从测试可以看出,MySQL的in中并没有数量上的限制,但是有sql语句整体大小的限制,不过还是建议in条件中不要超过200个数据,原因跟查询优化器计算成本有关,本文就暂时不分析了,感兴趣的同学可以关注我的公众号:IT周瑜