Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je ralentir un vidage MySQL pour ne pas affecter la charge actuelle sur le serveur ?

J'ai de très grandes bases de données avec des dizaines de milliers de tables dont certaines ont jusqu'à 5 Go de données dans des dizaines de millions d'entrées. (Je dirige un service populaire)... J'ai toujours eu des maux de tête lors de la sauvegarde de ces bases de données. En utilisant mysqldump par défaut, la charge du serveur devient rapidement incontrôlable et verrouille tout... affectant mes utilisateurs. Essayer d'arrêter le processus peut entraîner des plantages de tables et de nombreux temps d'arrêt lors de la récupération de ces tables.

J'utilise maintenant...

mysqldump -u USER -p --single-transaction --quick --lock-tables=false DATABASE | gzip > OUTPUT.gz

La référence mysqldump sur dev.mysql.com dit même...

Ne dit rien sur le fait que la base de données soit InnoDB, la mienne est myISAM et cela a fonctionné à merveille pour moi. La charge du serveur n'a presque pas été affectée et mon service a fonctionné comme une Rolex pendant tout le processus. Si vous avez de grandes bases de données et que leur sauvegarde affecte votre utilisateur final... c'est la solution.;)