Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

optimizando insert muchos registros

Estas en el tema de optimizando insert muchos registros en el foro de Mysql en Foros del Web. hola. Tengo un script que inserta unos 50000 registros en una bd y estoy tratando de optimizarlo para tardar lo menos posible. Comencé con un ...
  #1 (permalink)  
Antiguo 29/06/2012, 14:34
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 9 años
Puntos: 34
optimizando insert muchos registros

hola. Tengo un script que inserta unos 50000 registros en una bd y estoy tratando de optimizarlo para tardar lo menos posible.

Comencé con un bucle que insertaba 1 a 1 los registros y tardaba bastante.Como unos 15 minutos o mas.

Ahora estoy armando consultas insert de (en este momento) 2500 registros, y aunque arranca muy rapido, luego la velocidad comienza a caer y supera los 10 minutos.

Así armo la consulta con php:
Código PHP:
Ver original
  1. $consulta = "insert into players values ";
  2.  
  3. $i = 0;
  4.  
  5.     while($i < count($xml->players)){  
  6.         $consulta = "insert into players values ";
  7.         $j = 0;
  8.         while($j < 2500 && $i < count($xml->players)){ 
  9.                 $consulta .= "(".
  10.                         $xml->players[$i]['id'].",'".$xml->players[$i]['player']."','".
  11.                         $xml->players[$i]['name']."','".$xml->players[$i]['coords']."'),";
  12.  
  13.         $i++;
  14.         $j++;
  15.     }
  16.                 $consulta = substr ($consulta, 0, -1);
  17.                 echo $consulta."<br/>";    
  18.                 $db->ConsultaInsert($consulta);
  19.     }

mi pregunta es "cual es el valor optimo para insertar??" de a cuantos meto?? estuve probando con valores mas altos (4000, 5000) pero me da errores que creo que pueden ser por la longitud de la consulta ...

sugerencias??
  #2 (permalink)  
Antiguo 29/06/2012, 14:42
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 9 años
Puntos: 34
Respuesta: optimizando insert muchos registros

ahora estoy insertando de a 4500 y parece que va bien
  #3 (permalink)  
Antiguo 29/06/2012, 14:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.323
Antigüedad: 13 años, 5 meses
Puntos: 2656
Respuesta: optimizando insert muchos registros

Depende mucho del tamaño de los registros.
Una tabla de un ancho de registro de 200 bytes, no es lo mismo que otra con un campo BLOB o LONGTEXT.
Yo, con algunas reconfiguraciones del buffer de datos he podido meter 50.000 registros de 300 bytes de ancho, de un saque, sin que pestañee.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 29/06/2012, 14:56
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 9 años
Puntos: 34
Respuesta: optimizando insert muchos registros

son chiquitos los registros, promedio 500 caracteres... ponele.

voy a probar con un numero grande asi como me decis, un 50000 a ver que pasa
  #5 (permalink)  
Antiguo 29/06/2012, 15:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.323
Antigüedad: 13 años, 5 meses
Puntos: 2656
Respuesta: optimizando insert muchos registros

Reconfigura primero la variable bulk_insert_buffer_size. Está expresada en bytes. Duplica su valor en diferentes pruebas hasta encontrar el valor adecuado.
Yo suelo tenerla entre los 16 y los 64 Mb.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 29/06/2012, 15:13
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 9 años
Puntos: 34
Respuesta: optimizando insert muchos registros

ok gracias, muchas...!!! igualmente estoy probandolo en mi pc, luego en el hosting no creo que pueda tocar la variable :S

Etiquetas: insert, muchos, php, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:38.