Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2011, 15:30
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Insertar si no existe en la tabla

Buenas,

Hasta ahora he estado realizando cargas masivas con INSERTS múltiples, pero resulta que esto está bien cuando llamas al script por primera vez y haces la carga masiva. Pero si resulta que tienes que hacer esta llamada en varias ocasiones a lo largo de día, puede ser que la mitad de los datos no hayan cambiado y ya estén en la base de datos.

En ese caso, no deberías insertar nada.
El procedimiento que uso es, creo un bucle que recorre un array con 100.000 registros, entonces para cada valor del array compruebo si existe en la tabla de la base de datos

Código SQL:
Ver original
  1. SELECT COUNT(pronostico_id) FROM pronosticos WHERE pronostico_id=$pronostico_id"

Si no existe guardo ese dato en un array insertMultiples, para luego al final del script hacer el insert múltiple.

Mi pregunta es, ¿veis alguna alguna forma de acelerar el proceso? porque comparar 100.000 valores del array para ver si existe o no, y luego hacer el insert múltiple, no sé si es la mejor opción, o existe un select múltiple?? xD

Es lo que hay? un stored P, ayudaría en rendimiento?

Muchas gracias de antemano!