Roger: 100mb sql dump importieren... das dauert...

moin!

hat schon mal jemand einen 100mb großen sql-dump per phpMyAdmin importiert?
der dump ist entpackt 100mb groß. gepackt als gzip nur ~20mb.
das exportieren ging flink. nur das importieren (auf laptop; für präsentation) dauert jetzt schon 1:30h. ist das normal?

ich will nur sicher gehen, nicht dass ich noch 2h daneben sitze und dann feststelle, dass irgendwo ein fehler auftrat. ich brauch das morgen früh *zitter*

der dump enthält eine tabelle (struktur + daten). für jeden datensatz ist ein einzelner insert befehl vorhanden. ~321.000 datensätze wollen importiert werden.

gruß.
roger.

--
meine freundin sagt, ich wäre neugierig.
so steht's zumindest in ihrem tagebuch.
  1. hi,

    der dump ist entpackt 100mb groß. gepackt als gzip nur ~20mb.
    das exportieren ging flink. nur das importieren (auf laptop; für präsentation) dauert jetzt schon 1:30h. ist das normal?

    Schon möglich - Daten auslesen geht nun mal schneller als Daten schreiben.

    Blöd wär's allerdings, wenn du Indizes auf irgendwelchen Tabellenspalten liegen hast - da werden im worst case die Indizes nach jedem einzelnen Insert wieder aktualisiert - und das kostet _richtig_ Zeit.

    In solchen Fällen sollte man besser die Definition der Indizes von der Tabelle entfernen, alle Daten einfügen - und dann hinterher die Indizes wieder aufbauen lassen - das geht idR. deutlich schneller.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo wahsaga,

      In solchen Fällen sollte man besser die Definition der Indizes von der Tabelle entfernen, alle Daten einfügen - und dann hinterher die Indizes wieder aufbauen lassen - das geht idR. deutlich schneller.

      Alternativ kann man die Daten auch zu einem (oder wenigen) INSERT zusammenfügen indem man die erste Version des INSERT-Syntax in der Doku verwendet und hinter VALUES mehrer Klammersätze (mit Komma getrennt) mit den einzufügenden Daten schreibt (phpMyAdmin generiert die Art von INSERT wenn man den Punkt "Erweiterte 'INSERT's" in den Export-Einstellungen aktiviert).

      Grüße aus Nürnberg
      Tobias

      --
      TOP7: Möglichkeiten, den eigenen Ruf zu ruinieren
      Selfcode: ie:% fl:( br:< va:) ls:[ fo:) rl:° n4:& ss:) de:] js:| ch:? sh:( mo:| zu:)
      1. moin!

        Alternativ kann man die Daten auch zu einem (oder wenigen) INSERT zusammenfügen indem man die erste Version des INSERT-Syntax in der Doku verwendet und hinter VALUES mehrer Klammersätze (mit Komma getrennt) mit den einzufügenden Daten schreibt (phpMyAdmin generiert die Art von INSERT wenn man den Punkt "Erweiterte 'INSERT's" in den Export-Einstellungen aktiviert).

        ja, aber wenn der speicher begrenzt ist, ist irgendwann schluss. heisst, dass sich die kiste aufhängt....

        gruß.
        roger.

        --
        meine freundin sagt, ich wäre neugierig.
        so steht's zumindest in ihrem tagebuch.
        1. Hallo Freunde des gehobenen Forumsgenusses,

          ja, aber wenn der speicher begrenzt ist, ist irgendwann schluss. heisst, dass sich die kiste aufhängt....

          Ich habe mit dem Kommandozeilentool mysqldump die Erfahrung gemacht, dass zwar diese Insert-Syntax verwendet wird aber trotzdem nach x Datensätzen ein neuer Insert gemacht wird. Ich finde diesen Mittelweg sehr gut.

          Gruß
          Alexander Brock

  2. Hallo Roger,

    mit phpmyadmin noch nicht, aber sonst habe ich schon wesentlich größere dumps importiert auf einem P350 MHz und ging immer deutlich unter einer Stunde. Vielleicht solltest du das lieber mal auf Kommandozeile probieren und schauen was mysql zu deinem Dump zu sagen hat.

    Gruß,
    Cruz

    1. moin!

      omg. hat keine 3minuten gedauert...
      hab jetzt alles drin.

      leider hab ich jetzt statt der umlaute wie ü ein ü stehen.

      liegt sicherlich am zeichensatz, nur wo kann ich das einstellen?
      der export-dump kommt von einer win-maschine und soll auf eine linux-büchse.

      gruß.
      roger.

      --
      meine freundin sagt, ich wäre neugierig.
      so steht's zumindest in ihrem tagebuch.
      1. leider hab ich jetzt statt der umlaute wie ü ein ü stehen.
        liegt sicherlich am zeichensatz, nur wo kann ich das einstellen?

        Zeichensatz umstellen kann ich auf anhieb nicht sagen, lässt sich aber sicherlich schnell auf mysql.com klären. Aber mysql ist normalerweise OK was Zeichensatz angeht (habe erst vor ein paar Wochen sogar Kyrillisch da reingeblasen). Check lieber erstmal dein Dump, ob da die üs OK sind. Grundsätzlich immer erstmal Windows verdächtigen. :)

        Cruz

        1. moin!

          Zeichensatz umstellen kann ich auf anhieb nicht sagen, lässt sich aber sicherlich schnell auf mysql.com klären. Aber mysql ist normalerweise OK was Zeichensatz angeht (habe erst vor ein paar Wochen sogar Kyrillisch da reingeblasen). Check lieber erstmal dein Dump, ob da die üs OK sind. Grundsätzlich immer erstmal Windows verdächtigen. :)

          wenn ich mir den dump auf der linux-büchse ansehe, dann sind da schon die blöden zeichen drin. auf der win-dose nicht :S

          gruß.
          roger.

          --
          meine freundin sagt, ich wäre neugierig.
          so steht's zumindest in ihrem tagebuch.
          1. Umwandeln??
            Im Zweifel kann das jeder lausige Editor auf Linux
            oder Du stellst Deine Ausgabe auf was auch immer um.
            TomIRL

            1. moin!

              Umwandeln??
              Im Zweifel kann das jeder lausige Editor auf Linux

              eben nicht. vi und mcedit kacken bei der dateigröße ab :(

              gruß.
              roger.

              --
              meine freundin sagt, ich wäre neugierig.
              so steht's zumindest in ihrem tagebuch.
          2. roger roger,

            dann hast du mysql auf linux Seite schon mal eliminiert. Sind denn die üs in der windows mysql in Ordnung? Schau dir mal mit einem Hex Editor ein ü an, welche Bytenummer hat es? Das kleine ü sollte 129 sein. Jemand in diesem thread hat auch schon tausend gute Tipps bezüglich Zeichensatz  Fummelei gegeben.

            Cruz

      2. echo $begrüßung;

        leider hab ich jetzt statt der umlaute wie ü ein ü stehen.

        Dann wurde der Dump sicherlich UTF-8-kodiert ausgegeben.

        liegt sicherlich am zeichensatz, nur wo kann ich das einstellen?
        der export-dump kommt von einer win-maschine und soll auf eine linux-büchse.

        Das Betriebssystem spielt dabei keine Rolle. Die Version des Ziel-MySQL-Servers ist ausschlaggebend.
        Wenn das ebenso wie die Daten erzeugende Maschine mindestens 4.1 ist, dann solltest du beim Import mal die Option --default-character-set=utf8 probieren.
        Wenn du in eine Version 4.0 und darunter importieren möchtest, solltest du beim Exportieren den Zeichensatz latin1[*] wählen. Wenn das nicht geht, kannst du die Datei in einem UTF-8-fähigen Editor öffnen und unter ISO-8859-1 speichern. Unter Windows eignet sich dazu beispielsweise Ultraedit (Datei -> Konvertieren -> UTF8 nach ASCII) und unter Linux z.B. Kate (nach Öffnen der Datei ggf. unter Extras -> Kodierung -> Unicode(utf8) wählen, und beim "Speichern unter" ISO-8859-1 wählen.)

        echo "$verabschiedung $name";

        [*] Unter der Annahme, dass deine Nicht-ASCII-Zeichen alle mit ISO-8859-1/latin1 darstellbar sind, was der Fall wäre, wenn du nur deutschsprachige Texte verwendest.

        1. moin!

          ultraedit!! das wars. oh man. da benutze ich den editor schon so lange...
          einfaches konvertieren von ascii nach unicode (glaub ich..., naja, war schon spät. ich hatte alles durchprobiert, bis es endlich klappte).

          danke nochmal für eure hilfe.

          gruß.
          roger.

          --
          meine freundin sagt, ich wäre neugierig.
          so steht's zumindest in ihrem tagebuch.