1
我們有大約200 GB的.sql文件,我們對某些表格進行grep處理需要大約1個半小時,因爲有什麼方法可以減少時間?任何其他有效的方法來過濾一些表?任何幫助將不勝感激grep 200 GB Sql文件
我們有大約200 GB的.sql文件,我們對某些表格進行grep處理需要大約1個半小時,因爲有什麼方法可以減少時間?任何其他有效的方法來過濾一些表?任何幫助將不勝感激grep 200 GB Sql文件
GNU並行程序可以將輸入拆分爲多個子進程,每個子進程將在輸入的每個相應部分上運行grep。通過使用多個進程(假設您有足夠的CPU內核來應用於此工作),它可以通過並行運行更快地完成。
cat 200-gb-table.sql | parallel --pipe grep '<pattern>'
但是,如果你需要知道的模式出現的背景下(例如輸入的行號),這可能不是你所需要的。
一些隨機的建議:a)購買更快的磁盤; b)如果文件不經常更改,請將其壓縮; c)另外,如果它不經常改變,將其分成四部分,然後gzip零件; d)購買更多的記憶; e)嘗試[The Silver Searcher](https://github.com/ggreer/the_silver_searcher)。 (b)和(c)爲了IO而折衷CPU,並且幫助你將更多的文件放入操作系統緩存中。 –
可能的重複[最快可能的grep](https://stackoverflow.com/questions/9066609/fastest-possible-grep) –