MySQL 管道(pipe)tee 缓冲输出

4
当我在非交互模式下运行mysql命令行工具并观看结果时,我会在每个查询执行时看到它们。但是如果我将其管道化到“tee”中,mysql会缓冲结果,我只能在最后看到所有结果。如何指示mysql立即输出结果?我已经尝试过“-q”,但没有成功,在帮助页面中找不到正确的选项。:(
例如:query_dates.txt 包含200个查询,每个查询大约需要30秒。
head -4 query_dates.txt | mysql -u tester -h 172.16.77.30 myDB -ss
2015-05-01      375398346
2015-05-02      375704957
2015-05-03      375992591
2015-05-04      376193384

在这种情况下,我每30秒看一次每行文字,持续2分钟。
head -4 query_dates.txt | mysql -u tester -h 172.16.77.30 myDB -ss | tee 001.date_itemid.txt
2015-05-01      375398346
2015-05-02      375704957
2015-05-03      375992591
2015-05-04      376193384

在这种情况下,我必须等待2分钟,最后得到4个结果。
附注:我发现这个,在mysql中使用stdbuf可以解决问题,但我仍然想知道是否有任何mysql选项可以做到这一点。
1个回答

5

从手册上看:

  • --unbuffered,-n
    每次查询后刷新缓冲区。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接