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.

War es hilfreich?

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

  1. Holen Sie sich eine Kopie von High Performance MySQL . Tolles Buch.
  2. Erweiterte Einsätze in Deponien
  3. mit --tab Format Dump, so dass Sie mysqlimport verwenden können, das ist schneller als mysql
  4. Import mit mehreren Threads, einem für jede Tabelle.
  5. 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.
  6. 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üssen mysqldump.
  • 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)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top