3

mysql 客户端有一个名为“ unbuffered ”的选项,以及关于它的非常简单的一行,“在每次查询后刷新缓冲区。”,在 mysql 手册中。

我的问题是它的用途是什么?

我尝试阅读 mysql 源代码,它可能是“每次查询后刷新 mysql 客户端日志/输出缓冲区”选项,但我不确定。

谢谢。

4

1 回答 1

0

db 的默认行为是在输出任何信息之前缓冲您的查询。如果你运行一个无差别的查询,你是在要求 mysql 尽快开始输出。从理论上讲,这只在内存中存储一​​行,因此您可以流式传输大型表而不会耗尽内存。

缺点是您不能同时运行 2 个无缓冲查询。缓冲查询会将第二个查询排入队列,而无缓冲语句将引发错误。

另一个缺点是,在您结束对 redult 的迭代之前,您不知道还剩下多少行。

于 2013-09-26T03:05:35.967 回答