Ich habe diesen riesigen 32 GB SQL-Speicherauszug, den ich in MySQL importieren muss. Ich musste noch nie einen so großen SQL-Dump importieren. Ich habe das übliche gemacht:
mysql -uroot dbname < dbname.sql
Es dauert zu lange. Es gibt eine Tabelle mit ungefähr 300 Millionen Zeilen, die in ungefähr 3 Stunden auf 1,5 Millionen angestiegen ist. Es scheint also, dass das Ganze 600 Stunden dauern würde (das sind 24 Tage) und unpraktisch ist. Meine Frage ist also, gibt es einen schnelleren Weg, dies zu tun?
Weitere Infos / Befunde
- Die Tabellen sind alle InnoDB und es sind keine Fremdschlüssel definiert. Es gibt jedoch viele Indizes.
- Ich habe keinen Zugriff auf den ursprünglichen Server und die ursprüngliche Datenbank, daher kann ich keine neue Sicherung erstellen oder eine "heiße" Kopie usw. erstellen.
- Die hier
innodb_flush_log_at_trx_commit = 2
vorgeschlagene Einstellung scheint keine (deutlich sichtbare / exponentielle) Verbesserung zu bewirken. - Serverstatistiken während des Imports (von MySQL Workbench): https://imgflip.com/gif/ed0c8 .
- MySQL-Version ist 5.6.20 Community.
- innodb_buffer_pool_size = 16M und innodb_log_buffer_size = 8M. Muss ich diese erhöhen?