File grep200gbsql文件

File grep200gbsql文件,file,grep,File,Grep,我们有大约200 GB的.sql文件,我们正在为一些表进行grepping,这大约需要1个半小时,因为有什么方法可以减少时间吗?是否有其他有效的方法来筛选某些表?任何帮助都将不胜感激GNU并行程序可以将输入拆分为多个子进程,每个子进程将在输入的每个相应部分上运行grep。通过使用多个进程(假定您有足够的CPU内核来应用于此工作),它可以通过并行运行更快地完成 cat 200-gb-table.sql | parallel --pipe grep '<pattern>' cat 20

我们有大约200 GB的.sql文件,我们正在为一些表进行grepping,这大约需要1个半小时,因为有什么方法可以减少时间吗?是否有其他有效的方法来筛选某些表?任何帮助都将不胜感激

GNU并行程序可以将输入拆分为多个子进程,每个子进程将在输入的每个相应部分上运行grep。通过使用多个进程(假定您有足够的CPU内核来应用于此工作),它可以通过并行运行更快地完成

cat 200-gb-table.sql | parallel --pipe grep '<pattern>'
cat 200-gb-table.sql |并行--管道grep“
但是如果您需要知道模式发生的上下文(例如输入的行号),这可能不是您需要的。

一些随机建议:a)购买更快的磁盘;b) 如果文件不经常更改,请gzip;c) 另外,如果它不经常改变,把它分成四个部分,然后gzip这些部分;d) 购买更多内存;e) 试试看。(b) (c)用CPU交换IO,并帮助您将更多文件放入操作系统缓存中