mysqldump con tablas individuales mucho más lento que con --all-databases
Frecuentes
Visto 842 equipos
0
Utilizo dos formas diferentes de hacer una copia de seguridad de mi base de datos mysql. mysqldump con --all-databases es mucho más rápido y tiene un rendimiento mucho mejor que un bucle para volcar todas las bases de datos en un solo archivo. ¿Por qué? Y cómo acelerar el rendimiento de la versión en bucle
/usr/bin/mysqldump --single-transaction --all-databases | gzip > /backup/all_databases.sql.gz
y este bucle sobre 65 bases de datos incluso con agradable:
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c xxx -q > /backup/mysql/xxx_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-xxx -q > /backup/mysql/dj-xxx_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-xxx-p -q > /backup/mysql/dj-xxx-p_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-foo -q > /backup/mysql/dj-foo_08.sql
mysqldump.cnf solo se usa para la autenticación, no hay opciones adicionales allí.
1 Respuestas
2
Hay muchas diferencias.
En A, está escribiendo en gzip, que comprime los datos antes de escribirlos en el disco. B escribe archivos sql simples que pueden ser de 5 a 10 veces más grandes (resultados de mi base de datos). Si su rendimiento está limitado al disco, esta podría ser la solución.
-c = "inserciones completas" no se especifica en A
-q no está especificado en A
para grandes bases de datos
INFORMATION_SCHEMA
las consultas pueden ser una molestia con mysql (intente ejecutarSELECT * FROM information_schema.columns
. Para B, cada volcado tiene que hacer estas consultas, mientras que A tiene que hacer esto solo una vez.
Respondido 04 Jul 12, 10:07
gracias por su respuesta, no comprimir los archivos fue la principal pérdida de rendimiento.. - Martín Krung
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas mysql performance backup mysqldump database-performance or haz tu propia pregunta.
Está ejecutando con opciones muy diferentes, por ejemplo, el argumento -q y lo que esté en /etc/mysql/conf.d/mysqldump.cnf , lo que podría afectar en gran medida el resultado. ¿Probaste correr con las mismas opciones? (también tenga en cuenta que ejecutar el primer volcado puede extraer gran parte de los datos en la memoria, por lo que cuando ejecuta los otros comandos una hora más tarde, puede beneficiarse de ese caché) - nos
mysqldump.cnf solo se usa para la autenticación, no hay opciones adicionales. - Martin Krung
¿Y cuando volcas todas las bases de datos con la opción -q? También parece que no está comprimiendo el sql en su 2. ejemplo, por lo que los comandos podrían pasar mucho tiempo escribiendo en el disco duro. (todo esto hace un enorme diferencia en mis propias copias de seguridad, podrían o no en las suyas, es decir: haga que las pruebas sean lo más iguales posible para que podamos eliminar las diferencias obvias). nos