2011-02-16 20 views

Respuesta

18

puedo recomendar estos ajustes para mejorar el tiempo de carga:

  • innodb_doublewrite = 0
  • innodb_support_xa = 0
  • innodb_buffer_pool_size = (50-80% de la memoria del sistema)
  • innodb_log_file_size = (a número grande - 256M, etc.)
  • innodb_flush_log_at_trx_commit = 0

Aparte de los ajustes, hay algunas cosas que puede hacer usted mismo:

  • crear índices después de la carga (esta es una nueva optimización con 5.5/InnoDB plug-in).
  • Ordene el archivo de datos antes de cargarlo.
  • Divida el archivo de datos y cárguelo en paralelo.
+0

Gracias. ¡Es genial trabajar! –

2

Esto podría no ser exactamente lo que estás buscando, pero es un truco que he utilizado en el pasado

ALTER TABLE TABLE_NAME DISABLE KEYS; 
LOAD DATA INFILE ... ; 
ALTER TABLE TABLE_NAME ENABLE KEYS; 

espero que ayuda

+4

Este truco sólo funciona para MyISAM. –

+0

Tienes razón, lo siento. –

0

También asegúrese de que el registro binario se deshabilite si es posible.

0

Si se tiene prisa porque va a reemplazar el contenido de una tabla en vivo, y luego hacerlo de la manera siguiente:

CREATE TABLE new LIKE live; 
LOAD DATA ... INTO new; 
RENAME TABLE live TO old, new TO live; 
DROP TABLE old; 

El RENAME es 'instantánea' y atómica, por lo que son 'nunca' abajo, independientemente del tamaño de la mesa.

(Por lo tanto usted no necesita preocuparse tanto por la aceleración de la LOAD.)

Cuestiones relacionadas