Pregunta

¿Existen técnicas documentadas para acelerar los volcados e importaciones de MySQL?

Esto incluiría la configuración de my.cnf, el uso de discos RAM, etc.

Buscar únicamente técnicas documentadas, preferiblemente con puntos de referencia que muestren una posible aceleración.

¿Fue útil?

Solución

http://www.maatkit.org/ tiene un mk-parallel-dump y mk-parallel-restore

Si ha estado deseando un mysqldump multiproceso, no desee más.Esta herramienta vuelca tablas MySQL en paralelo.Es un mysqldump mucho más inteligente que puede actuar como un contenedor para mysqldump (con un comportamiento predeterminado sensato) o como un contenedor para SELECT INTO OUTFILE.Está diseñado para aplicaciones de alto rendimiento con tamaños de datos muy grandes, donde la velocidad es muy importante.Aprovecha múltiples CPU y discos para volcar sus datos mucho más rápido.

También hay varias opciones potenciales en mysqldump, como no crear índices mientras se importa el volcado, sino hacerlos en masa al finalizar.

Otros consejos

  1. Obtener una copia de MySQL de alto rendimiento.Gran libro.
  2. Inserciones extendidas en vertederos.
  3. Volcar con formato - -Tab para que pueda usar MySQLIMPORT, que es más rápido que MySQL <Dumpfile
  4. Importar con múltiples hilos, uno para cada tabla.
  5. Utilice un motor de base de datos diferente si es posible.Importar a un motor muy transaccional como innodb es terriblemente lento.Insertar en un motor no transaccional como Myisam es mucho más rápido.
  6. Mire el script de comparación de la tabla en el kit de herramientas Maakit y vea si puede actualizar sus tablas en lugar de descargarlas e importarlas.Pero probablemente estés hablando de copias de seguridad/restauraciones.

Si está importando a InnoDB, lo más efectivo que puede hacer es poner

innodb_flush_log_at_trx_commit = 2

en tus my.cnf, temporalmente mientras se ejecuta la importación.Puedes volver a ponerlo en 1 si necesitas ÁCIDO.

Supongo que tu pregunta también depende de dónde está el cuello de botella:

  • Si su red es un cuello de botella, también puede echar un vistazo a -C/--compress bandera a mysqldump.
  • Si su computadora se queda sin memoria (es decir.comienza a intercambiar) deberías comprar más memoria.

Además, eche un vistazo a la --quick bandera para mysqldump (y --disable-keys si estás usando MyIsam).

El uso de inserciones extendidas en volcados debería acelerar las importaciones.

Desactive las comprobaciones de claves externas y active la confirmación automática.

mysqlhotcopy También podría ser una alternativa para usted si solo tiene tablas MyIsam.

Otra alternativa es http://www.mydumper.org - copia de seguridad/restauración de mysql multiproceso que es de 3 a 10 veces más rápido que mysqldump y puede manejar tanto MyISAM como InnoDB, así como Drizzle http://vbtechsupport.com/1695/

Usando índices pero no demasiado, active el caché de consultas, use sphinx para bases de datos grandes, aquí hay algunos buenos consejos http://www.keedeo.com/media/1857/26-astuces-pour-accelerer-vos-requetes-mysql (En francés)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top