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

标签 mysql

我的 mysql-driver 使用二进制协议(protocol)直接与 mysql 交互。 我想知道 mysql 发送带有结果的数据包的频率。

有两种方法:

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

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

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

MySQL 可能对响应缓冲区有一些设置?

谢谢。

最佳答案

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

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

关于mysql - mysql 如何从 SELECT 查询发送大结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38274436/

相关文章:

MySQL > 表不存在。但它确实(或应该)

mysql - 为什么这个 MySql 查询(在分区表上)总是命中第一个分区?

mysql - 转义引号作为字段的值使我的 sql 脚本崩溃

mysql - MySql 中的索引创建时间

MySQL 自动将字符串转换/转换为数字?

mysql - 如何查找上次输入的记录

php - Laravel 5.4 获取 id 的 json 数组

mysql - Perl - 将日期从 YEAR-MM-DD 转换为 MONTH、DD、YEAR

javascript - 对 PHP 插入查询触发 Alertify 警报

mysql - 如何从二进制日志文件中获取数据并插入到我们想要的 MySQL 表中?