Eine Beschleunigung mysql Deponien und Importe [geschlossen]
Frage
Gibt es dokumentierte Techniken zur Beschleunigung der mySQL-Dumps und Importe?
Dies würde my.cnf Einstellungen, mit ramdisks etc.
Betrachtet man nur für dokumentierten Techniken, vorzugsweise mit Benchmarks Potential Speed-up zeigt.
Lösung
http://www.maatkit.org/ hat ein mk-Parallel-Dump und mk-parallel -restore
Wenn Sie schon für Multi-Threaded mysqldump zu wollen, will nicht mehr. Dieses Tool Dumps MySQL-Tabellen in parallel. Es ist eine viel intelligentere mysqldump, die entweder als Wrapper für mysqldump (mit vernünftigem Standardverhalten) oder als Wrapper um SELECT INTO OUTFILE wirken kann. Es ist für Hochleistungsanwendungen auf sehr große Datengrößen entwickelt, bei denen Geschwindigkeit eine Menge Fragen. Es nutzt mehrere CPUs und Festplatten Ihre Daten viel schneller auszugeben.
Darüber hinaus gibt es verschiedene mögliche Optionen in mysqldump wie nicht-Indizes zu machen, während die Dump importiert werden -. Sondern sie en-Masse auf der Fertigstellung zu tun
Andere Tipps
- Holen Sie sich eine Kopie von High Performance MySQL . Tolles Buch.
- Erweiterte Einsätze in Deponien
- mit --tab Format Dump, so dass Sie mysqlimport verwenden können, das ist
schneller als mysql
- Import mit mehreren Threads, einem für jede Tabelle.
- Verwenden Sie einen anderen Datenbank-Engine, wenn möglich. Import in ein stark Transaktions-Engine wie InnoDB ist furchtbar langsam. Einsetzen in einen nicht-Transaktions-Engine wie MyISAM ist viel viel schneller.
- Blick auf die Tabelle Skript im Maakit Toolkit vergleichen und sehen, wenn Sie können Aktualisieren Sie Ihre Tabellen, anstatt sie zu Dumping und importieren sie. Aber Sie sprechen wahrscheinlich über Sicherungen / Wiederherstellungen.
Wenn Sie das effektivste, was zu InnoDB importieren Sie tun können, ist zu setzen
innodb_flush_log_at_trx_commit = 2
in Ihrem my.cnf
, vorübergehend während des Import läuft. Sie können ihn wieder 1
wenn Sie ACID benötigen.
Ich glaube, Ihre Frage hängt auch davon ab, wo der Engpass ist:
- Wenn Ihr Netzwerk ein Engpass könnte man auch einen Blick auf die
-C
/--compress
Flagge müssenmysqldump
. - Wenn Ihr Computer über genügend Arbeitsspeicher ausgeführt (dh. Swapping gestartet) sollten Sie mehr Speicher kaufen.
Auch haben einen Blick auf die --quick
Flagge für mysqldump
(und --disable-keys
wenn Sie MyIsam verwenden).
erweiterte Einsätze in Deponien Verwendung sollten die Einfuhren schneller machen.
drehen Fremdschlüsselprüfungen ab und schalten Sie autocommit.
mysqlhotcopy
könnte eine Alternative für Sie auch, wenn Sie nur MyISAM-Tabellen haben.
Eine weitere Alternative ist http://www.mydumper.org - Multi-Threaded-mysql Backup / Restore, das ist 3x bis 10x mal schneller als mysqldump und kann sowohl MyISAM und InnoDB Griff sowie Drizzle http://vbtechsupport.com/1695/
Indizes verwenden, aber nicht zu viel, Abfrage-Cache aktivieren, für große Datenbank mit Sphinx, hier einige gute Tipps http://www.keedeo.com/media/1857/26-astuces-pour-accelerer-vos-requetes-mysql (Französisch)