Tema: Insert To
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/08/2006, 22:37
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas, ni sabía que existía esa sintaxis, me viene muy bien porque justamente estaba insertando muchos registros a la vez con un loop. (Por cada registro, un insert, mínimo unos 50, en no mucho tiempo puede que ese número suba a 5.000 ó 6.000). Con esto supongo que será bastante más óptimo; a simple vista incluso me parece más rápido: habrá que ver cuando los números empiecen a crecer...

Sólo un detalle. Es:

INSERT INTO tabla (col1,col2)
VALUES (1,'a'),(2,'b'),(3,'c');

Sin repetir VALUES, y separando cada nueva fila por comas

Gracias por la info.

Suerte
Califa


PD: Acabo de leer un poco más y veo un potencial problema con este método. En algún punto, si el tamaño del string de la consulta crece demasiado, puede llegar a generar un error.

El máximo tamaño de la consulta está determinado por el valor de la variable de configuración max allowed packet. Revisé la configuración de dos servidores que tengo a mano y este valor está en 1 MBytes (calculo que debe ser el valor por defecto). Lo cual significaría que el máximo que podría tener la consulta sería algo así como 1 millón de caracteres. Que sería como insertar 64.000 filas de un tirón con la consulta que estoy usando actualmente, lo cual en principio parece un margen bastante razonable (igual, calculo que antes que pasarse con el tamaño de la consulta habría un timeout del script o de la conexión al server MySQL).

Si alguien ve algún error en los 'cálculos' de arriba o algo que se me esté pasando, soy todo oídos.

Última edición por califa010; 23/08/2006 a las 23:00