2015-10-23 70 views
1

當我在非交互模式下運行mysql命令行工具並只看結果時,我會在執行每個查詢時看到它們。但是如果我將它用於「開球」,mysql會緩衝結果,而且我只會在最後看到它。我如何指示mysql立即輸出結果?我已經嘗試「-q」沒有成功,我找不到幫助頁面中的正確選項。 :(mysql pipe tee buffers output

實施例: 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:我找到了this並使用了stdbuf在mysql工作,但我仍然想知道哪個mysql選項的伎倆......如果有的話。

回答

1

從手冊頁:

  • --unbuffered,-n
    刷新每次查詢後緩衝區。