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

Insercion simple o multiple?

Estas en el tema de Insercion simple o multiple? en el foro de Mysql en Foros del Web. Hola que tal? Bueno mi pregunta es bien simple, que es mas "eficiente" para el gestor de base de datos como para el lenguaje de ...
  #1 (permalink)  
Antiguo 13/11/2008, 15:53
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Insercion simple o multiple?

Hola que tal?
Bueno mi pregunta es bien simple, que es mas "eficiente" para el gestor de base de datos como para el lenguaje de programación usado (teniendo en cuenta que este genera las consultas de acuerdo a las entradas del usuario), usar inserciones simples o múltiples?

Por ejemplo:
Código:
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2');
o

Código:
INSERT INTO tabla (campo1, campo2) VALUES ('valor1', 'valor2'), ('valor1', 'valor2'), ('valor1', 'valor2'), ('valor1', 'valor2'), ('valor1', 'valor2'), ('valor1', 'valor2'), ('valor1', 'valor2'), ('valor1', 'valor2'), ('valor1', 'valor2'), ('valor1', 'valor2')
__________________
KIBIT.cl
  #2 (permalink)  
Antiguo 13/11/2008, 16:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Insercion simple o multiple?

Si tienes que hacer un volcado masivo de datos, siempre te conviene una inserción múltiple.
Yo habitualmente lo hago con entre 50 y 200 registros sin problemas.
Esto:
Código sql:
Ver original
  1. INSERT INTO tabla (campo1, campo2)
  2. VALUES ('valor1', 'valor2'),
  3. ('valor1', 'valor2'),
  4. ('valor1', 'valor2'),
  5. ('valor1', 'valor2'),
  6. ('valor1', 'valor2'),
  7. ('valor1', 'valor2'),
  8. ('valor1', 'valor2'),
  9. ('valor1', 'valor2'),
  10. ('valor1', 'valor2'),
  11. ('valor1', 'valor2');
debería andar perfectamente
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/11/2008, 17:47
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: Insercion simple o multiple?

Eso esta claro, con esa cantidad de registros es mucho mas conveniente hacerlo multiple, pero a partir de que cantidad es conveniente hacerlos? O siempre y cuando sean mas de 1?

Hablando siempre del metodo mas eficiente
__________________
KIBIT.cl
  #4 (permalink)  
Antiguo 14/11/2008, 04:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Insercion simple o multiple?

Hazlo si tienes, al menos:
1. Tienes muchos registros a ingresar (yo lo hago a partir de 50 registros, pero porque las descargas que hago contienen realmente desde 500 hasta 250.000).
2. Tienes muchos índices o índices con claves muy largas (la actualización del índice se realiza al terminar la sentencia y no con cada bloque de datos).
3. Tienes una conexión remota (se ejecuta en un solo enlace de transferencia y no con uno por cada VALUE).
4. Usas transacciones (al acelerar el insert evitas que los bloqueos se vuelvan demasiado largos).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 21:19.