2009-05-09 5 views

Antwort

3

Es hängt davon ab, was Sie wirklich wollen. Möchten Sie Schemainformationen und Datenbankmetadaten beibehalten? Was ist mit Spaltennamen? Auf der anderen Seite sollte Ihre aktuelle Methode gut für Daten Speicher funktionieren, solange das Schema und Spaltenreihenfolge nicht ändern, kaufen Sie sollten den Fall eines Datensatzes mit dem "|" Zeichen in es und entkomme diesen Wert angemessen, und wenden Sie die entsprechende Logik beim Lesen und Parsen der Datei zurück. Vielleicht möchten Sie in Text::CSV nach einer schnellen, realisierbaren und flexiblen Implementierung suchen, die die meiste Arbeit für Sie in beide Richtungen erledigt, sowohl beim Schreiben als auch beim Lesen der Datei.

6

Können Sie mysqldump berappen? Das ist, wofür es da ist ...

1

Wie bereits gesagt, es hängt davon ab, was Sie tun möchten. Wenn die Daten gesichert werden sollen, sollten Sie mysqlhotcopy (wenn Sie MyIsam-Tabellen verwenden) in Erwägung ziehen, die die Daten-/Indexdateien kopiert. Es ist viel schneller als das manuelle Ablegen von Daten (z. B. bekomme ich ein Backup von 2,5 GB in ca. 3 Minuten).

1

Je nachdem, warum Sie es brauchen, und was die Größe und Inhalt ist. Angenommen, was Sie wollen, ist kein Backup, das natürlich neben Perl eine andere Anwendung haben sollte. Ich würde mit etwas so gehen, das Ihre Spalten konserviert und die Daten in einigen Aspekten einfacher macht, in andere Programme zu schlürfen oder als CSV auszugeben.

use XML::Simple; 
... 
my @rows=(); 
while (my $h = $sth->fetchrow_hashref()) 
{ 
    $h->{_ROWNUM}=$#rows; 
    push(@rows, $h); 
} 
print XMLout(\@rows); 
Verwandte Themen