mysql管道三通缓冲区输出

mysql管道三通缓冲区输出,mysql,pipe,Mysql,Pipe,当我在非交互模式下运行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-0

当我在非交互模式下运行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选项起作用……如果有的话。

从手册页:

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