大きな mysql ダンプ (最大 10G) をインポートする必要があります。ただし、sql ダンプは、インデックス定義を持つデータベース構造で既に事前定義されています。インデックスとテーブルの定義を削除して、データベースの挿入を高速化したいと考えています。
つまり、 10Gテキスト ファイルの最初の数行を削除/編集する必要があります。Linuxでこれを行う最も効率的な方法は何ですか?
ファイル全体を RAM にロードする必要があるプログラムは、私にとってやり過ぎです。
大きな mysql ダンプ (最大 10G) をインポートする必要があります。ただし、sql ダンプは、インデックス定義を持つデータベース構造で既に事前定義されています。インデックスとテーブルの定義を削除して、データベースの挿入を高速化したいと考えています。
つまり、 10Gテキスト ファイルの最初の数行を削除/編集する必要があります。Linuxでこれを行う最も効率的な方法は何ですか?
ファイル全体を RAM にロードする必要があるプログラムは、私にとってやり過ぎです。
最初の数行を削除するのではなく、空白に編集してみてください。
プログラムはこれ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)
Perl はファイルを 1 行ずつ読み取ることができます。
perl -pi.bak -e 's/^create index/--create index/'