当我以非交互模式运行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个结果。
PS:我发现了这一点并stdbuf
在mysql中使用了,但是我仍然想知道哪个mysql选项可以解决问题。
从手册页:
- --unbuffered,-n
每次查询后刷新缓冲区。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句