Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP应用程序如何通过MySQL获取超过最大允许数据包值的巨大数据_Php_Mysql - Fatal编程技术网

PHP应用程序如何通过MySQL获取超过最大允许数据包值的巨大数据

PHP应用程序如何通过MySQL获取超过最大允许数据包值的巨大数据,php,mysql,Php,Mysql,我正在优化一个脚本。其中一个想法是通过选择并保存更多的多个“选择”来获取大约300万行(一次又一次地发送查询,而不是一次执行查询)。所以我允许的最大数据包是32MB,每行平均有50个字节。所以,当我做数学时,我得到了一个大约65.5万的数字,应该填满32MB的空间 所以我想知道MySQL是如何发送比最大数据包大小还要大的数据的。我能够获取的最大行数(并且有勇气尝试)是600万行 来源- 非常感谢您在这方面的帮助,因为一旦我了解了这一点,我就能够创建一个适当的回退(记住,这个想法是优化而不是破坏它

我正在优化一个脚本。其中一个想法是通过选择并保存更多的多个“选择”来获取大约300万行(一次又一次地发送查询,而不是一次执行查询)。所以我允许的最大数据包是32MB,每行平均有50个字节。所以,当我做数学时,我得到了一个大约65.5万的数字,应该填满32MB的空间

所以我想知道MySQL是如何发送比最大数据包大小还要大的数据的。我能够获取的最大行数(并且有勇气尝试)是600万行

来源-


非常感谢您在这方面的帮助,因为一旦我了解了这一点,我就能够创建一个适当的回退(记住,这个想法是优化而不是破坏它。)

如果您感到好奇,我之所以要获取300万行,是因为我能够在大约20秒内完成这项工作,并且在循环中完成这项工作需要几分钟。此外,RAM的使用量确实增加了1 GB左右,但它是可以管理的。我承认我不是专家,但从您链接的页面上看,这让我觉得通信数据包可能是发送到MySQL服务器的单个SQL语句,发送到客户端的单个行,或从主复制服务器发送到从服务器的二进制日志事件。有趣的部分是单词single的使用,因此PacketSize只需足够大,就可以用于单个查询或单个结果RowHmmm。。。你说得有道理。基本上,您要说的是,除非一行大小不超过数据包大小,否则它始终能够获取数据包,而不管结果行的数量如何。我将在我的本地机器上尝试,将允许的最大数据包减少到几KBs,然后围绕它进行测试。我将对您的发现感兴趣