Einzelne Tabelle aus einem MySQL-Dump extrahieren

Du hast einen 7-GB-Dump mit 127 Tabellen, brauchst lokal aber nur drei davon — users, orders, products. Hier erfährst du, warum die üblichen sed/grep-Tricks zerbrechen und wie du genau die gewünschten Tabellen (samt Foreign Keys) in wenigen Klicks herauslöst.

Nicht jede Aufgabe braucht die komplette Datenbank. Wenn du lokal an einem Feature arbeitest, willst du selten einen vollständigen Produktions-Dump, der deine Platte füllt und eine Stunde zum Importieren braucht. Du willst die paar Tabellen, die das Feature tatsächlich anfasst.

Dasselbe gilt beim Debuggen einer einzelnen Tabelle — ein Datenproblem in orders nachzustellen erfordert nicht die anderen 126 Tabellen — oder bei einer Teil-Migration, bei der nur einige Tabellen in einen neuen Dienst umziehen. In all diesen Fällen lautet die Frage gleich: Wie hole ich genau diese Tabellen sauber und schnell aus einem riesigen Dump heraus?

Der sed/grep-Ansatz und warum er zerbricht

Die klassische Antwort: die Datei mit sed zwischen den Abschnitts-Kommentaren zerschneiden, die mysqldump pro Tabelle schreibt:

# die users-Tabelle aus einem mysqldump herauslösen
sed -n '/-- Table structure for table `users`/,/-- Table structure for table/p' dump.sql > users.sql

Sieht clever aus und funktioniert bei einem kleinen, aufgeräumten Dump vielleicht sogar einmal. Bei einer echten 7-GB-Datei geht das auf viele subtile Arten schief:

Am Ende stapelst du awk auf grep auf sed, testest an Teilmengen und traust dem Ergebnis trotzdem nicht. Es geht einfacher.

Tabellen mit DumpCleaner extrahieren

DumpCleaner parst den Dump richtig — es versteht Statement-Grenzen, mehrzeilige INSERTs, Backticks und Kommentare — und schneidet deshalb immer an den richtigen Stellen. Die gewünschten Tabellen zu extrahieren dauert vier Schritte:

  1. Zieh deinen .sql-Dump hinein. DumpCleaner liest die Datei streamend, sodass ein 7-GB-Dump mit konstantem Speicher öffnet, statt alles auf einmal zu laden.
  2. Lies die automatisch erkannte Tabellenliste. Jede Tabelle wird herausgeparst und mit Zeilenzahl und Größe aufgelistet — kein Scrollen durch Millionen Zeilen, um zu sehen, was drin ist.
  3. Wähle die gewünschten Tabellen. Hake users, orders und products an oder tippe ein Regex- bzw. Exclude-Muster wie *_logs, um ganze Gruppen auf einmal zu entfernen.
  4. Elterntabellen mitnehmen und exportieren. Optional referenzierte Elterntabellen automatisch einschließen und dann eine saubere, importierbare Datei exportieren.

Ein paar Dinge machen das deutlich weniger fummelig als Shell-Werkzeuge:

Genau die Tabellen, die du brauchst — sonst nichts

DumpCleaner extrahiert bestimmte Tabellen aus Dumps jeder Größe — streamend, mit konstantem Speicher und mit für dich aufgelösten Foreign Keys. Native macOS- & iPadOS-App, Einmalkauf.

Im App Store laden

Häufige Fragen

Kann ich mehrere Tabellen auf einmal extrahieren?

Ja. Hake so viele Tabellen an, wie du möchtest — users, orders und products zusammen — und DumpCleaner schreibt sie alle in einem Durchgang in eine einzige Datei.

Bleiben die Foreign-Key-Abhängigkeiten erhalten?

Optional ja. Aktiviere Foreign-Key-Abhängigkeiten einschließen, und jede von deiner Auswahl referenzierte Elterntabelle wird automatisch mitgenommen, sodass der Extrakt ohne Constraint-Fehler importiert.

Kann ich Tabellen per Muster ausschließen?

Ja. Nutze Exclude-Muster wie *_logs oder *_sessions oder einen regulären Ausdruck, um ganze Tabellengruppen zu entfernen, statt sie einzeln abzuwählen.

Funktioniert das auch mit PostgreSQL?

Ja. DumpCleaner liest MySQL-, MariaDB- und PostgreSQL-Dumps (pg_dump) und behandelt schema-qualifizierte Namen wie public.users beim Extrahieren von Tabellen.

Schluss mit sed und grep

Ziehen, Tabellen wählen, exportieren. DumpCleaner holt genau die Tabellen, die du brauchst — samt Foreign Keys — aus jedem Dump.

Im App Store laden