Hello!
2012/7/23 azure wang:
>
> 我在读lua-resty-mysql代码的时候发现
>
> 从结果集中每读取一个row调用一次_recv_packet
> 但是每次_recv_packet返回最多_max_packet_size数据,默认_max_packet_size是1M,根据packet头的长度3字节
> _max_packet_size最大16M,显然一个较大的row读取会有问题。
>
> 可能我理解的不是很好,请指教。
>
packet size 根据 mysql 5.5 的文档确实可以达到 1 GB:
http://dev.mysql.com/doc/refman//5.5/en/server-system-variables.html#sysvar_max_allowed_packet
不过根据我依据的社区协议文档,packet size 字段确实是 3 个字节:
http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol
我不太清楚新的协议是否对此有扩展或者我对此理解有局限。或许应该查看一下 libmysqlclient 的源码 :)
你能兴趣为 lua-resty-mysql 提供一个补丁么?呵呵。
Thanks!
-agentzh
P.S. 抄送给 openresty 邮件列表:https://groups.google.com/group/openresty