Cita:
Iniciado por gnzsoloyo
Esta parte es la que me causa dudas:
¿Por qué razón se termina contando N veces (100.000)? Si esos dos valores son PK, entonces sólo debe ser necesario contar una única vez, una sola ejecución, y siendo PK, sería rapidísima.
¿De donde salen los otros 99.999 registros que verificas? ¿En qué se diferencian?
Respecto a usar INSERT IGNORE, si el registro ya existe, simplemente no lo inserta, sin warnings. Pero si no existe, lo inserta, y en ese caso la función NUM_ROWS() debe devolverte un numero positivo (1), ya que se modificó algo. En cambio, si no lo insertó, NUM_ROWS() devolverá cero (0).
Nota: NUM_ROWS() es una función de MySQL, no de PHP, pero PHP tiene su propia forma de obtener la misma información, luego de ejecutar la consulta en MySQL.
Eso lo tienes que ver en el Foro de PHP.
Gracias de nuevo amigo!.
Te comento, el arreglo tiene más de 100 mil registros por lo que, recorrerlo para verificar cada entrada implica 100 mil select count(*) where reg = 'elemento actual del arreglo'.
Debo verificar cada elemento del arreglo que viene de twitter para ver si ya lo cargué en la base de datos o no. Hago el insert SI Y SOLO SI no lo he cargado.
Por eso pensé ¿y si elimino ese select count e inserto sin preguntar?
Para eso tengo 2 opciones: Hacerlo con insert y manejar el error para evitar ejecutar la función o hacerlo con insert ignore