2011-10-12 8 views
8

Tengo un gran volcado (decenas de GB) y me gustaría importarlo en una nueva tabla sin respetar el parámetro ENGINE = INNODB.¿Cómo puedo anular el parámetro ENGINE = INNODB mientras importo un archivo de volcado de MySQL?

He intentado varios editores dedicados a archivos grandes para editar el volcado, pero siempre lleva mucho tiempo guardar las modificaciones, por lo que tendría mucho más sentido ignorar el parámetro ENGINE = INNODB y anularlo (por ejemplo con el motor predeterminado).

Importar y luego cambiar el motor no sería una opción ya que InnoDB es extremadamente lento para importar el volcado, por lo que tomaría días.

Respuesta

5

Si usted está en un sistema operativo Linux/Unix ¿Qué tal una en el lugar de edición con sed

sed -i 's/ENGINE=INNODB/ENGINE=MYISAM/g' filename 
+3

Vale la pena mencionar que, en el improbable caso de que algunos de los datos en la base de datos realmente contiene el texto 'ENGINE = INNODB', este comando corrompería los datos. – Asaph

+1

@Asaph - buen punto. –

+3

use 'sed -i -re 's/^ (\) ENGINE =) INNODB/\ 1MyISAM/gi'', debería ser seguro ya que no debería haber líneas nuevas no codificadas en los datos reales. –

7

mysqldump --compatible=no_table_options

trabajó para mí

Cuestiones relacionadas