{"id":126,"date":"2026-07-17T14:23:00","date_gmt":"2026-07-17T12:23:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=126"},"modified":"2026-10-24T00:57:44","modified_gmt":"2026-10-23T22:57:44","slug":"extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/","title":{"rendered":"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP"},"content":{"rendered":"<p>Aus einem gro\u00dfen MySQL-Dump wird manchmal nur eine bestimmte Tabelle ben\u00f6tigt. Daf\u00fcr muss die gesamte Datei nicht in einen Editor oder in den PHP-Arbeitsspeicher geladen werden. Entscheidend ist jedoch, welche Art von Ergebnis ben\u00f6tigt wird: ein Textauszug zur Untersuchung oder eine tats\u00e4chlich wiederherstellbare Datenbanksicherung.<\/p>\n<p>Ein zeilenbasierter Filter ist kein SQL-Parser. Das folgende PHP-Beispiel kopiert ausgew\u00e4hlte, durch Standardkommentare abgegrenzte Tabellenabschnitte. Das Ergebnis bleibt ein <strong>Textauszug zur Pr\u00fcfung<\/strong>. F\u00fcr eine Wiederherstellung ist ein gezielter neuer Export oder ein gepr\u00fcfter Wiederherstellungsablauf vorzuziehen.<\/p>\n<figure class=\"lw-diagram wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/dia-122-sql-20261024-de.png\" width=\"1120\" height=\"580\" alt=\"SQL-Auszug: Datenbank und Tabellen getrennt ausw\u00e4hlen\" loading=\"lazy\" \/><\/figure>\n<h2>Warum ein einfacher Ein-\/Ausschalter nicht gen\u00fcgt<\/h2>\n<p>Datenbank und Tabelle sind zwei getrennte Zust\u00e4nde. Beim Wechsel der Datenbank muss eine laufende Auswahl enden. Bei jeder neuen Tabellenmarkierung muss erneut entschieden werden, ob die Tabelle ausgew\u00e4hlt ist. Eine Pr\u00fcfung der n\u00e4chsten Tabellenmarke ausschlie\u00dflich bei ausgeschaltetem Kopierschalter w\u00fcrde nach dem ersten Treffer weitere Tabellen mitschneiden.<\/p>\n<p>Auch <code>fgets()<\/code> allein garantiert keinen winzigen Speicherverbrauch: Ohne L\u00e4ngenbegrenzung wird eine vollst\u00e4ndige Zeile gelesen. Ein erweitertes <code>INSERT<\/code> kann sehr lang sein. Das Beispiel liest deshalb h\u00f6chstens 65.536 Bytes pro Schritt und untersucht Markierungen ausschlie\u00dflich am Zeilenanfang. Lange Datenzeilen werden st\u00fcckweise kopiert.<\/p>\n<h2>Welche Dump-Formate das Beispiel voraussetzt<\/h2>\n<ul>\n<li>Unkomprimierte Textdatei im \u00fcblichen <code>mysqldump<\/code>-Kommentarformat mit Datenbankmarkierungen, etwa aus einem Export mit <code>--databases<\/code> oder <code>--all-databases<\/code>.<\/li>\n<li>Abschnittsmarkierungen <code>-- Current Database:<\/code>, <code>-- Table structure for table<\/code> und\/oder <code>-- Dumping data for table<\/code> sind vorhanden. Ein Dump mit <code>--skip-comments<\/code> wird daf\u00fcr nicht unterst\u00fctzt.<\/li>\n<li>Exakte Datenbank- und Tabellennamen statt einer unklaren gemeinsamen Pr\u00e4fixsuche. Namen mit eingebetteten Backticks und abweichende Generatorformate sind nicht abgedeckt.<\/li>\n<li>PHP 8 auf der Kommandozeile und ein lokales Dateisystem, das Hardlinks zwischen Dateien desselben Verzeichnisses unterst\u00fctzt. Eingabe, Teil- und Ausgabedatei liegen au\u00dferhalb eines \u00f6ffentlich erreichbaren Webverzeichnisses.<\/li>\n<\/ul>\n<p>Komprimierte Dumps m\u00fcssen vorher in eine ausreichend gro\u00dfe, gesch\u00fctzte Arbeitsumgebung entpackt werden. Eine Sichtung des Dateianfangs hilft bei der Einordnung, beweist aber weder den vollst\u00e4ndigen Inhalt noch s\u00e4mtliche sp\u00e4teren Tabellen oder Zeilenl\u00e4ngen.<\/p>\n<h2>PHP-Beispiel: genau benannte Tabellenabschnitte<\/h2>\n<p>Der Aufruf <code>php extract.php dump.sql excerpt.txt shop orders customers<\/code> w\u00e4hlt die Tabellen <code>orders<\/code> und <code>customers<\/code> aus der Datenbank <code>shop<\/code>. Die Ausgabedatei und die zugeh\u00f6rige <code>.part<\/code>-Datei d\u00fcrfen noch nicht existieren.<\/p>\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/\/ PHP 8 CLI. Produces a text excerpt, not a validated restore file.\numask(0077);\nif ($argc &lt; 5) {\n    fwrite(STDERR, &quot;Usage: php extract.php input.sql excerpt.txt database table [table...]\\n&quot;);\n    exit(2);\n}\n[, $input, $output, $database] = $argv;\n$tables = array_fill_keys(array_slice($argv, 4), true);\n$part = $output . &#x27;.part&#x27;;\n$in = $out = false;\n$created = false;\n\ntry {\n    $in = @fopen($input, &#x27;rb&#x27;);\n    if ($in === false) throw new RuntimeException(&#x27;Cannot open input&#x27;);\n    $out = @fopen($part, &#x27;xb&#x27;);\n    if ($out === false) throw new RuntimeException(&#x27;Cannot create new partial output&#x27;);\n    $created = true;\n    $currentDatabase = null;\n    $copy = false;\n    $lineStart = true;\n    $seen = [];\n\n    while (($chunk = fgets($in, 65537)) !== false) {\n        if ($lineStart) {\n            if (preg_match(&#x27;\/^-- Current Database: `([^`]+)`\\r?\\n?$\/D&#x27;, $chunk, $m)) {\n                $currentDatabase = $m[1];\n                $copy = false;\n            } elseif (preg_match(&#x27;\/^-- (?:Table structure|Dumping data) for table `([^`]+)`\\r?\\n?$\/D&#x27;, $chunk, $m)) {\n                $copy = $currentDatabase === $database &amp;&amp; isset($tables[$m[1]]);\n                if ($copy) $seen[$m[1]] = true;\n            } elseif (str_starts_with($chunk, &#x27;-- &#x27;)) {\n                $copy = false;\n            }\n        }\n        if ($copy) {\n            $offset = 0;\n            $length = strlen($chunk);\n            while ($offset &lt; $length) {\n                $n = fwrite($out, substr($chunk, $offset));\n                if ($n === false || $n === 0) throw new RuntimeException(&#x27;Write failed&#x27;);\n                $offset += $n;\n            }\n        }\n        $lineStart = str_ends_with($chunk, &quot;\\n&quot;);\n    }\n    if (!feof($in)) throw new RuntimeException(&#x27;Read failed&#x27;);\n    if (array_diff_key($tables, $seen)) {\n        throw new RuntimeException(&#x27;Requested table marker missing; format or names differ&#x27;);\n    }\n    if (!fflush($out)) throw new RuntimeException(&#x27;Flush failed&#x27;);\n    if (!fclose($out)) throw new RuntimeException(&#x27;Close failed&#x27;);\n    $out = false;\n    \/\/ Same-directory hard link: fails if the final name already exists.\n    if (!@link($part, $output)) throw new RuntimeException(&#x27;Cannot publish new output&#x27;);\n    if (!unlink($part)) throw new RuntimeException(&#x27;Output exists, partial link cleanup failed&#x27;);\n    $created = false;\n    fwrite(STDERR, &quot;Text excerpt written. Separate restore validation required.\\n&quot;);\n} catch (Throwable $e) {\n    if (is_resource($out)) fclose($out);\n    if ($created &amp;&amp; is_file($part)) unlink($part);\n    fwrite(STDERR, $e-&gt;getMessage() . &quot;\\n&quot;);\n    exit(1);\n} finally {\n    if (is_resource($in)) fclose($in);\n}\n<\/code><\/pre>\n<p>Die neue Ausgabedatei erscheint erst nach dem vollst\u00e4ndigen Leselauf, erfolgreichen Schreibpr\u00fcfungen und mindestens einer passenden Markierung je angeforderter Tabelle. Ein Treffer belegt dabei nur die Abschnittsauswahl, nicht die Vollst\u00e4ndigkeit der SQL-Objekte. Ein bestehendes Ergebnis wird nicht \u00fcberschrieben. Bei einem Fehler erfolgt ein Abbruch mit einem von null verschiedenen Exitcode; ein Teil-Auszug wird nicht als fertiges Ergebnis gemeldet.<\/p>\n<h2>Vom Textauszug zur Wiederherstellung<\/h2>\n<p>Session-Einstellungen wie Zeichensatz und SQL-Modus, Fremdschl\u00fcsselbez\u00fcge, Trigger, Views und Routinen k\u00f6nnen au\u00dferhalb des kopierten Abschnitts liegen. Kommentare k\u00f6nnen au\u00dferdem in ungew\u00f6hnlich formatierten SQL-Zeichenketten vorkommen. Das Beispiel interpretiert solche SQL-Strukturen nicht und darf deshalb nicht als universeller Importfilter eingesetzt werden.<\/p>\n<p>Bei verf\u00fcgbarem Originalserver kann <code>mysqldump<\/code> eine Datenbank und danach ausdr\u00fccklich benannte Tabellen direkt exportieren. F\u00fcr InnoDB kann <code>--single-transaction<\/code> zur konsistenten Sicherung dienen; andere Speicher-Engines und gleichzeitige Struktur\u00e4nderungen ben\u00f6tigen eine passende Strategie. Ist nur der vorhandene Dump verf\u00fcgbar, erm\u00f6glicht eine isolierte Wiederherstellung mit anschlie\u00dfender Objektauswahl einen kontrollierteren Weg. Zielversion, Speicherplatz, Abh\u00e4ngigkeiten und Zugriffsrechte geh\u00f6ren vor dem Import gepr\u00fcft.<\/p>\n<div class=\"lw-faq\">\n<h2>Fragen und Antworten<\/h2>\n<h3>Wie schnell arbeitet der Filter?<\/h3>\n<p>Die gesamte Eingabedatei wird gelesen. Laufzeit und Speicherbedarf h\u00e4ngen unter anderem von Datentr\u00e4ger, Ausgabeumfang und PHP ab. Eine allgemeine Zusage \u201emehrere Gigabyte in wenigen Sekunden\u201c ist nicht belastbar. Der begrenzte Lesepuffer verhindert lediglich, dass eine einzelne sehr lange Zeile vollst\u00e4ndig im PHP-Speicher liegen muss.<\/p>\n<h3>Was bedeutet ein fehlender Treffer?<\/h3>\n<p>Ein Name kann fehlen, anders geschrieben sein oder ohne die erwarteten Kommentare vorliegen. Das Skript meldet diesen Fall als Fehler. Ein leerer Auszug wird nicht als Beleg f\u00fcr eine leere Tabelle ausgegeben.<\/p>\n<h3>Sind s\u00e4mtliche gew\u00fcnschten Daten damit wiederherstellbar?<\/h3>\n<p>Das l\u00e4sst sich aus einem erfolgreichen Textfilterlauf nicht ableiten. Eine Wiederherstellungsprobe mit Schema-, Zeilen- und Abh\u00e4ngigkeitskontrolle ist eine getrennte Pr\u00fcfung. Das Original bleibt unver\u00e4ndert erhalten.<\/p>\n<\/div>\n<h2>Quellen und Stand<\/h2>\n<p>2026-10-24<\/p>\n<ul>\n<li><a href=\"https:\/\/www.php.net\/manual\/en\/function.fgets.php\">PHP: fgets<\/a><\/li>\n<li><a href=\"https:\/\/www.php.net\/manual\/en\/function.fwrite.php\">PHP: fwrite<\/a><\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.4\/en\/mysqldump.html\">MySQL 8.4: mysqldump<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Aus einem gro\u00dfen MySQL-Dump wird manchmal nur eine bestimmte Tabelle ben\u00f6tigt. Daf\u00fcr muss die gesamte Datei nicht in einen Editor oder in den PHP-Arbeitsspeicher geladen werden. Entscheidend ist jedoch, welche Art von Ergebnis ben\u00f6tigt wird: ein Textauszug zur Untersuchung oder eine tats\u00e4chlich wiederherstellbare Datenbanksicherung. Ein zeilenbasierter Filter ist kein SQL-Parser. Das folgende PHP-Beispiel kopiert ausgew\u00e4hlte, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":13648,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[92055,92442,92256,92274,92340],"class_list":["post-126","post","type-post","status-publish","format-standard","hentry","category-it-networks-de","tag-automation-de","tag-backup-de","tag-mysql-de","tag-php-de","tag-server-administration-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP | Lukas Wojcik<\/title>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Aus einem gro\u00dfen MySQL-Dump wird manchmal nur eine bestimmte Tabelle ben\u00f6tigt. Daf\u00fcr muss die gesamte Datei nicht in einen Editor oder in den PHP-Arbeitsspeicher geladen werden. Entscheidend ist jedoch, welche Art von Ergebnis ben\u00f6tigt wird: ein Textauszug zur Untersuchung oder eine tats\u00e4chlich wiederherstellbare Datenbanksicherung. Ein zeilenbasierter Filter ist kein SQL-Parser. Das folgende PHP-Beispiel kopiert ausgew\u00e4hlte, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-17T12:23:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-23T22:57:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-126-extrahieren-spezifischer-tabellen-au-g.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP\",\"datePublished\":\"2026-07-17T12:23:00+00:00\",\"dateModified\":\"2026-10-23T22:57:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/\"},\"wordCount\":660,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-126-extrahieren-spezifischer-tabellen-au-g.png\",\"keywords\":[\"Automation\",\"Backup\",\"MySQL\",\"PHP\",\"Server Administration\"],\"articleSection\":[\"IT &amp; Networks\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/\",\"name\":\"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-126-extrahieren-spezifischer-tabellen-au-g.png\",\"datePublished\":\"2026-07-17T12:23:00+00:00\",\"dateModified\":\"2026-10-23T22:57:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-126-extrahieren-spezifischer-tabellen-au-g.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-126-extrahieren-spezifischer-tabellen-au-g.png\",\"width\":1200,\"height\":630,\"caption\":\"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/it-networks-de\\\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP | Lukas Wojcik","robots":{"index":"noindex","follow":"follow"},"og_locale":"en_US","og_type":"article","og_title":"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP | Lukas Wojcik","og_description":"Aus einem gro\u00dfen MySQL-Dump wird manchmal nur eine bestimmte Tabelle ben\u00f6tigt. Daf\u00fcr muss die gesamte Datei nicht in einen Editor oder in den PHP-Arbeitsspeicher geladen werden. Entscheidend ist jedoch, welche Art von Ergebnis ben\u00f6tigt wird: ein Textauszug zur Untersuchung oder eine tats\u00e4chlich wiederherstellbare Datenbanksicherung. Ein zeilenbasierter Filter ist kein SQL-Parser. Das folgende PHP-Beispiel kopiert ausgew\u00e4hlte, [&hellip;]","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-07-17T12:23:00+00:00","article_modified_time":"2026-10-23T22:57:44+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-126-extrahieren-spezifischer-tabellen-au-g.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP","datePublished":"2026-07-17T12:23:00+00:00","dateModified":"2026-10-23T22:57:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/"},"wordCount":660,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-126-extrahieren-spezifischer-tabellen-au-g.png","keywords":["Automation","Backup","MySQL","PHP","Server Administration"],"articleSection":["IT &amp; Networks"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/","name":"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-126-extrahieren-spezifischer-tabellen-au-g.png","datePublished":"2026-07-17T12:23:00+00:00","dateModified":"2026-10-23T22:57:44+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-126-extrahieren-spezifischer-tabellen-au-g.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-126-extrahieren-spezifischer-tabellen-au-g.png","width":1200,"height":630,"caption":"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/it-networks-de\/extrahieren-spezifischer-tabellen-aus-riesigen-sql-dumps-mit-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Extrahieren spezifischer Tabellen aus riesigen SQL-Dumps mit PHP"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=126"}],"version-history":[{"count":7,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/126\/revisions"}],"predecessor-version":[{"id":22888,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/126\/revisions\/22888"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/13648"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}