Frage

Ich habe einen großen MySQL-Dump importieren (bis zu 10G). Allerdings ist die SQL-Dump bereits mit einer Datenbankstruktur mit Indexdefinition vorgegeben. Ich mag durch Entfernen des Index und Tabellendefinition des db Einsatz beschleunigen.

Das heißt, ich muß entfernen / bearbeiten die ersten Zeilen einer 10G Textdatei. Was ist der effizienteste Weg, dies zu tun, auf Linux

Programme, die die gesamte Datei in den RAM erfordern Laden wird ein Overkill für mich.

War es hilfreich?

Lösung

Anstatt Entfernen die ersten paar Zeilen, versuchen sie Leerzeichen zu bearbeiten.

Das hexedit Programm kann tun this-- es Dateien in Stücken liest, so eine 10-GB-Datei zu öffnen unterscheiden sich nicht von einer 100 KB-Datei, um es zu öffnen.

$ 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)

Andere Tipps

joe ist ein Editor, der auch mit großen Dateien arbeitet. Ich habe es nur eine ~ 5G SQL-Dump-Datei zu bearbeiten. Es dauerte eine Minute über die Datei und ein paar Minuten zu öffnen, um sie zu retten, mit sehr wenig Gebrauch von Swap (auf einem System mit 4G RAM).

sed 's/OLD_TEXT/NEW_TEXT/g' < oldfile > newfile

oder

cat file | sed 's/OLD_TEXT/NEW_TEXT/g' > newfile

Perl kann die Datei Zeile für Zeile lesen:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top