Il semble qu'une base de données MySQL qui a une table avec des dizaines de millions d'enregistrements aura une grande déclaration INSERT INTO
lorsque les conditions suivantesLoisirs de MySQL DB en utilisant "mysql mydb <mydb.sql" est vraiment lent quand la table a des dizaines de millions d'enregistrements. Comment l'améliorer?
mysqldump some_db > some_db.sql
est fait pour sauvegarder la base de données. (Est-il une instruction d'insertion qui gère tous les dossiers?)
Ainsi, lors de la reconstruction de la DB en utilisant
mysql some_db < some_db.sql
la CPU est peu occupé (environ 1,8% l'utilisation par le processus de MySQL ... Je ne vois pas non plus un mysqld?) Et aussi le disque dur ne semble pas être trop occupé ...
La dernière fois, l'ensemble du processus de restauration a pris 5 heures. Y a-t-il un moyen de le rendre plus rapide? Tels que, en faisant mysqldump
, peut-il casser l'instruction INSERT
en plus courts, de sorte que le mysql
n'a pas besoin d'analyser la ligne si dur lors de la restauration de la base de données?
Copier les fichiers: Seul MyISAM, et un verrou sur la table lors de la copie ('mysqlhotcopy' vient à l'esprit). – Wrikken
il crée la DB sur le disque dur local, donc je pense que le mysqld devrait être sur la machine locale, mais pour une raison quelconque, quand je fais un "ps -a" ou si je regarde le moniteur d'activités sur un Mac avec Snow Leopard, je ne vois que le processus mysql mais pas le mysql. –
mysqld s'exécute généralement en tant qu'utilisateur mysql. Je ne connais pas assez la ligne de commande osx ps pour vous dire quels commutateurs utiliser, mais vous devez voir tous les processus de tous les utilisateurs pour les trouver. – Donnie