我的mysql-driver使用二进制协议直接与mysql交互。 我想知道,mysql多久发送一次带有结果的数据包。
有两种方式:
Mysql在内存中累积一些结果,并一次发送。
Mysql每次可用时都会发送结果。
你能帮我确定一下这种情况吗?基于MySQL的来源或手册中的具体短语,我需要知道这个问题的具体答案
可能MySQL有一些缓冲响应的设置吗?
感谢。
答案 0 :(得分:0)
客户端 - 服务器协议记录在MySQL文档的Chapter 14中。
用于发送查询和获取结果的命令记录在Command Phase中。具体到您的问题,获取结果的命令是COM_STMT_FETCH。此命令的参数是先前准备的语句的语句ID以及要获取的行数。文档没有明确说明,但我认为它不会返回任何超过请求的行。因此,它一次发送结果N
,其中N
是此命令的参数。