2010-10-25 21 views
5

Estoy cargando un archivo de texto grande en mi base de datos a través de LOAD DATA. El archivo tiene aproximadamente 122,000 líneas de largo. Menos aún, el db está diseñado para activarse en DESPUÉS de INSERTAR en esa tabla. Lo que ocurre es exactamente que la consulta comienza a ejecutarse, se mantiene como ejecutor de 15-20 minutos y luego vuelveLOAD DATA LOCAL INFILE pierde la conexión, ¿cómo soluciono el tiempo de espera?

Error Code: 2013 
Lost connection to MySQL server during query 

continuación

Error Code: 2006 
MySQL server has gone away 

Después de que los errores aparecen, i volver a ejecutar la consulta y se termina de inmediato;

0 row(s) affected 
Records: 122574 Deleted: 0 Skipped: 122574 Warnings: 0 

Y la tabla es realmente importada;

select * from quote 
122574 row(s) returned 

estoy corriendo mysqld 01/05/51 en Mac OS X 10.6.4 y mi consulta es

LOAD data local INFILE 
     '/Users/ash/quotes/data.txt' 
     INTO TABLE quote fields 
     TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\r\n' 
      (quote.date,quote.ticker,quote.open, 
      quote.high,quote.low,quote.close,quote.volume,@market) 
      SET market = 'sp'; 

Parece que el db-conexión es el tiempo de espera, ¿cómo puedo solucionar esto?

+0

Puede considerar la eliminación de DESPUÉS DE INSERTOS y, en su lugar, realizar sus operaciones, a granel, una vez cargado el archivo. 122K filas, especialmente con solo unas pocas columnas numéricas, cada una, es * minúscula * y realmente solo debería tomar unos segundos, como máximo ... – user359996

Respuesta

0

Puede cambiar el límite de tiempo configurando la variable wait_timeout cuando inicia mysqld. Consulte MySQL documentation

Cuestiones relacionadas