51 votes

Accélération des dumps et importations mysql

Existe-t-il des techniques documentées pour accélérer les dumps et les importations mySQL?

Cela inclurait les paramètres my.cnf, l’utilisation de disques virtuels, etc.

Rechercher uniquement des techniques documentées, de préférence avec des points de repère indiquant une accélération potentielle.

24voto

JBB Points 2013
  1. Obtenir une copie de Haute Performance MySQL. Grand livre.
  2. Insertions étendues dans des décharges
  3. Dump --onglet format de sorte que vous pouvez utiliser mysqlimport, qui est plus rapide que mysql < dumpfile
  4. Importation avec plusieurs threads, une pour chaque table.
  5. Utiliser un autre moteur de base de données si possible. l'importation dans une fortement transactionnelle moteur comme innodb est affreusement lent. L'insertion dans une situation de non-transactionnelles moteur comme MyISAM est beaucoup beaucoup plus rapide.
  6. Regardez le tableau de la comparer script dans le Maakit toolkit et voir si vous pouvez mise à jour de vos tables plutôt que de les jeter et de les importer. Mais vous êtes probablement parler de sauvegardes/restaurations.

15voto

Alister Bulman Points 12913

http://www.maatkit.org/ a mk-parallèle-vidage et le mk-parallèle-restauration

Si vous avez été désireux multi-thread mysqldump, souhaitent ne plus. Cet outil dumps MySQL tables en parallèle. Il est beaucoup plus intelligent mysqldump qui peuvent agir comme un wrapper pour mysqldump (avec des comportement par défaut) ou comme un wrapper autour de SELECT INTO OUTFILE. Il est conçu pour des applications de haute performance sur de très gros volumes de données, où la vitesse est très important. Il tire parti de plusieurs Processeurs et disques de vider vos données beaucoup plus rapide.

Il existe également différentes options envisageables dans le dump comme ne faisant pas d'index lors de la décharge est importé - mais au lieu de les faire en masse sur la fin.

13voto

Si vous importez dans InnoDB, la chose la plus efficace que vous puissiez faire est de mettre

 innodb_flush_log_at_trx_commit = 2
 

dans votre my.cnf , temporairement pendant l’importation. Vous pouvez le remettre à 1 si vous avez besoin d’ACID.

5voto

Ztyx Points 1617

Je suppose que votre question dépend également de l'endroit où se trouve le goulot d'étranglement:

  • Si votre réseau est un goulot d' étranglement , vous pouvez aussi jeter un oeil à l' -C / --compress drapeau mysqldump .
  • Si votre ordinateur manque de mémoire (c.-à-d. Qu'il commence à permuter), vous devez acheter plus de mémoire.

Consultez également le drapeau --quick pour mysqldump (et --disable-keys si vous utilisez MyIsam).

4voto

che Points 6899

L'utilisation d'inserts étendus dans les vidages devrait accélérer les importations.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X