mysql管道三通缓冲区输出
当我在非交互模式下运行mysql命令行工具并只查看结果时,我会在执行每个查询时看到它们。但是,如果我将其管道传输到“tee”,mysql将缓冲结果,我只会看到最后的结果。如何指示mysql立即输出结果?我已经尝试了“-q”但没有成功,我在帮助页面中找不到正确的选项:( 例如: query_dates.txt包含200个查询,每个查询耗时约30秒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
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
每次查询后刷新缓冲区