mysql管道tee缓冲输出

时间:2015-10-23 23:45:40

标签: mysql pipe

当我以非交互模式运行mysql命令行工具并只观察结果时,我会在执行每个查询时看到它们。但是,如果我把它传送到" tee&#34 ;, mysql正在缓冲结果,我只能在最后看到它。如何指示mysql立即输出结果?我已经尝试了#34; -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分钟内每隔30秒看到一行。

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个结果。

P.S。:我发现this并在mysql中使用stdbuf工作,但我仍然想知道哪个mysql选项可以解决这个问题......如果有的话。

1 个答案:

答案 0 :(得分:1)

从手册页:

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