it-swarm-es.tech

Acelerando los volcanes y las importaciones de mysql.

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

Esto incluiría la configuración de my.cnf, usar ramdisks, etc.

Buscar solo técnicas documentadas, preferiblemente con puntos de referencia que muestren un potencial de aceleración.

51
deadprogrammer

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

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

También hay varias opciones potenciales en mysqldump, como no hacer índices mientras se importa el volcado, pero en lugar de hacerlo en masa al finalizar.

15
Alister Bulman
  1. Obtenga una copia de High Performance MySQL. 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 <archivo de volcado
  4. Importar con múltiples hilos, uno para cada tabla.
  5. Utilice un motor de base de datos diferente si es posible. importar en un motor altamente 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 tablas en el kit de herramientas Maakit y vea si puede actualizar sus tablas en lugar de volcarlas e importarlas. Pero probablemente estás hablando de copias de seguridad/restauraciones.
24
JBB

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

innodb_flush_log_at_trx_commit = 2

en su my.cnf, temporalmente mientras se está ejecutando la importación. Puede volver a ponerlo en 1 si necesita ACID.

13

Supongo que su 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 la bandera -C/--compress para mysqldump.
  • Si su computadora se queda sin memoria (es decir, comienza el intercambio), debería comprar más memoria.

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

5
Ztyx

El uso de inserciones extendidas en vertederos debería agilizar las importaciones.

4
che

desactive las comprobaciones de clave externa y active la confirmación automática.

4
longneck

mysqlhotcopy puede ser una alternativa para usted también si solo tiene tablas MyIsam.

1
Ztyx