16

大きな mysql ダンプ (最大 10G) をインポートする必要があります。ただし、sql ダンプは、インデックス定義を持つデータベース構造で既に事前定義されています。インデックスとテーブルの定義を削除して、データベースの挿入を高速化したいと考えています。

つまり、 10Gテキスト ファイルの最初の数行を削除/編集する必要があります。Linuxでこれを行う最も効率的な方法は何ですか?

ファイル全体を RAM にロードする必要があるプログラムは、私にとってやり過ぎです。

4

4 に答える 4

35

最初の数行を削除するのではなく、空白に編集してみてください。

プログラムはこれhexeditを行うことができます-ファイルをチャンクで読み取るため、10 GB のファイルを開くことは、100 KB のファイルを開くことと同じです。

$ hexedit largefile.sql.dump
tab (switch to ASCII side)
space (repeat as needed until your header is gone)
F2 (save)/Ctrl-X (save and exit)/Ctrl-C (exit without saving)
于 2009-03-31T02:24:07.280 に答える
-1

Perl はファイルを 1 行ずつ読み取ることができます。

perl -pi.bak -e 's/^create index/--create index/'

于 2009-03-31T02:25:57.260 に答える