Maison  >  Article  >  base de données  >  Explication détaillée de la comparaison entre mydumper et mysqldump dans mysql

Explication détaillée de la comparaison entre mydumper et mysqldump dans mysql

黄舟
黄舟original
2017-05-28 09:51:131583parcourir

MySQLL'outil de sauvegarde de base de données possède son propre mysqldump, qui est un outil de sauvegarde officiel de MySQL. Cependant, l'outil de sauvegarde tiers mydumper est utilisé par un plus grand nombre de personnes en raison de ses fonctionnalités supérieures. Ensuite, nous vérifierons l’efficacité des sauvegardes entre eux grâce à des tests.

Si vous ne sauvegardez que quelques tables ou une seule bibliothèque, mysqldump et mydumper sont plus pratiques qu'innobackup, mais mydumper ajoute relativement plus de fonctionnalités, telles que la sauvegarde multithread, la sauvegarde de correspondance régulière, Groupe et fonctions d'auto-test. De plus, mydumper et mysqldump sont essentiellement les mêmes données logiques d'exportation et ne prennent pas en charge la sauvegarde à chaud en ligne innodb. Bien sûr, nous pouvons également utiliser innobackup pour sauvegarder certaines données de table, mais c'est le cas. Ce n'est pas la même chose que mydumper et mysqldump. Méthode de sauvegarde de classe, donc ce qui suit teste uniquement l'utilisation entre mydumper et mysqldump.

mydumper export

Utilisez l'outil mydumper pour exporter. test(9.4G) avec 8 threads Les données sont compressées comme suit :
mydumper -B test --regex 'test.*' -c -e -G -E -R --use-savepoints -h 10.0.21.5 -u root -P 3301 -p xxxxxx -t 8 -o /data/mysql_bak/

Dans le répertoire /data/mysql_bak, chaque table de la bibliothèque est enregistrée sous deux fichiers : définition de table et données .

Le temps d'exécution global est le suivant, il faut un total de 123 secondes

# cat metadata 
Started dump at: 2017-05-19 10:48:00
SHOW MASTER STATUS:
  Log: mysql-bin.000406
  Pos: 2165426
  GTID:(null)

SHOW SLAVE STATUS:
  Host: 10.144.127.4
  Log: mysql-bin.000419
  Pos: 506000361
  GTID:(null)

Finished dump at: 2017-05-19 10:50:03

export mysqldump

Utilisez l'outil mysqldump par défaut pour exportez la bibliothèque et compressez-la, comme indiqué ci-dessous :

# time mysqldump -B test -E -R -h 10.0.21.5 -u root -P 3301 -p | gzip >/data/test.sql.gz
Enter password: 

real  3m19.805s
user  4m47.334s
sys 0m10.395s

real Une ligne montre que la durée totale d'exécution de mysqldump est de 199,8 s

Résumé

Dans l'ensemble, en raison du peu de données, mysqldump et mydumper La différence de temps n'est pas grande, la plupart du temps est consommé au niveau de la transmission des données. Si la bibliothèque est suffisamment grande, les avantages de mydumper peuvent être reflétés. , la version inférieure de mydumper aura le problème d'erreurs d'exportation en raison des changements de syntaxe de la version supérieure de MySQL. Par exemple, l'erreur suivante se produit :

** (mydumper:18758): CRITICAL **: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' 
at line 1 (1064)

Pour résoudre ce problème, vous pouvez. utilisez une version supérieure de mydumper. Si la version supérieure a toujours ce problème, vous pouvez vous référer à github code officiel Apporter les modifications de code correspondantes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn