mysql如何从SELECT查询中发送大结果?

时间:2016-07-08 19:53:54

标签: mysql

我的mysql-driver使用二进制协议直接与mysql交互。 我想知道,mysql多久发送一次带有结果的数据包。

有两种方式:

  1. Mysql在内存中累积一些结果,并一次发送。

  2. Mysql每次可用时都会发送结果。

  3. 你能帮我确定一下这种情况吗?基于MySQL的来源或手册中的具体短语,我需要知道这个问题的具体答案

    可能MySQL有一些缓冲响应的设置吗?

    感谢。

1 个答案:

答案 0 :(得分:0)

客户端 - 服务器协议记录在MySQL文档的Chapter 14中。

用于发送查询和获取结果的命令记录在Command Phase中。具体到您的问题,获取结果的命令是COM_STMT_FETCH。此命令的参数是先前准备的语句的语句ID以及要获取的行数。文档没有明确说明,但我认为它不会返回任何超过请求的行。因此,它一次发送结果N,其中N是此命令的参数。