2016-06-11 24 views
0

Ich bin über eine 5 GB Tabelle auf der Kommandozeile importieren:Import großer MySQL-Datei ohne Replikation hinken

mysql -u dbuser -p customersdb < transactions.sql

Vorher hatte ich eine 2-GB-Datei importiert und verursacht Replikation für längere Zeit zurückzubleiben von Zeit. Gibt es das überhaupt, um das hier zu vermeiden? Irgendwie scheint mir ein Timeout nach ein paar tausend Importen ideal zu sein.

Ich habe es googeln versucht, aber es scheint nicht so, dass dieser Anwendungsfall oft kommt.

Edit: Gibt es trotzdem eine Überwachung des Fortschritts eines Imports?

Antwort

1

Das Problem, das die Verzögerung verursacht, ist, dass der Slave-Thread standardmäßig Single-Thread ist. Alle Operationen - sowohl von Ihrem Import als auch von anderen Operationen - laufen in einer einzigen Warteschlange ab.

Beginnend mit MySQL 5.6 können Sie dort Multi-Threading verwenden, indem Sie die Option setzen. Mit MySQL 5.6 verteilt dies Operationen aus verschiedenen Schemas, mit 5.7 kann es auch innerhalb eines einzelnen Schemas parallieren.

Siehe https://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#sysvar_slave_parallel_workers