Ich habe jetzt 36 Stunden darauf gewartet, dass eine 12 GB große .sql-Datei mit einem einfachen type site.sql | mysql
Befehl importiert wird . Ich kann sehen, das ibdata1
wächst noch, derzeit fast 40 GB.
In Anbetracht der Auslöser und gespeicherten Prozeduren am Ende der .sql-Datei sollte MySQL meiner Meinung nach nur Daten und Schlüsselindizes hinzufügen.
Die site.sql wurde mit diesem Befehl von einem anderen Server generiert:
mysqldump -R -e --databases site --add-drop-database --add-create-database --add-drop-table -C --single-transaction --triggers
Was dauert es so lange?
LOAD DATA INFILE
. Wenn Sie eine ganze Datenbank verschieben, lesen Sie auch meine Antwort zum Verschieben von Datenbanken zwischen Servern, wenn Sie dieselbe Hauptversion verwenden. (vor allem, wenn Sie abbrechen und neu starten müssen)Antworten:
Versuche dies:
Identifizieren Sie dann die Prozess-ID
Lassen Sie es dann 10 Sekunden oder eine Minute
^C
. Hier erfahren Sie, wo der Prozess seine Zeit verbringt, z. B. könnte er nur auf die Festplatte warten, wenn Sie sie sehenread
undwrite
beherrschen.quelle
Haben Sie InnoDB-Tabellen mit einem Primärschlüssel?
Jede dieser Bedingungen kann wahrscheinlich dazu führen, dass große BTREE-Knoten in Ihren Indizes nur sehr wenige Blätter in jedem BTREE-Knoten haben. Der Clusterschlüssel im Primärschlüssel wird auch an jeden nicht eindeutigen Schlüsseleintrag in nicht gruppierten Schlüsseln angehängt.
Eine weitere Überlegung: Ist die Summe der InnoDB-Datenseiten wesentlich geringer als die der InnoDB-Indexseiten?
Das können Sie mit dieser Abfrage herausfinden (in MB):
Weitere Überlegung: Haben Sie die Binärprotokollierung auf dem zu ladenden DB-Server aktiviert? Wenn ja, machen Sie dies bitte auf dem Server, den Sie laden:
Ich hoffe das hilft !!!
quelle
Sind Sie sicher, dass die Tabellen, in die Sie einlesen, keine Trigger, Indizes und Einschränkungen enthalten? Auf welcher Hardware und auf welchem Betriebssystem laufen Sie? Wie ist Ihr Speicher konfiguriert?
Ich bin eher mit Oracle vertraut, aber 12G-Importe auf Tabellen ohne Trigger, Indizes und Einschränkungen sollten mit 200 GB / h problemlos möglich sein. Ein einziger Auslöser kann den Prozess zu einer Schnecke machen, je nachdem, was dieser Auslöser tut ...
ich hoffe das hilft
quelle