Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/10/2013, 11:28
Avatar de luisvasquez
luisvasquez
 
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 5 meses
Puntos: 6
Respuesta: Insert ignore para optimizar?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Creo que estás entremezclando las cosas: O lo resuelves por programación, o lo haces con un mejor uso de lógica de SQL y Bases de Datos.
Hacer las cosas iterativamente es muy de programadores, pero no es necesariamente correcto usarla en SQL. Las iteraciones no son necesarias si se usan correctas validaciones en la base de datos.

Explica mejor estas cosas:
1) ¿Por qué recorres esa iteración, qué datos se supone que tienes al inicio para hacerla y qué es lo que intentas hacer al realizarla.
2) realmente necesitas insertar, o estás intentando actualizar algo también?
3) ¿Por qué una sintaxis alternativa de INSERT? Se puede prestar a confusiones, por más que sea válida.

Nota: El código de programación no está permitido en Foros de BBDD. Leer las normas del foro, por favor.
Agradezco tu pronta respuesta y pido disculpas por postear código en esta sección del foro.

El arreglo que estoy recorriendo viene de un llamado al API de Twitter, por lo que no es una estructura elegida por mi. Viene así y así debo procesalra. Contiene los id de los seguidores de una cuenta twitter en particular ($cuenta).

Sólo necesito insertar los registros nuevos, que no han sido insertados antes, es decir, los nuevos seguidores de la cuenta desde la última ejecución del script.

De allí el select count() para preguntar ¿ya está en la tabla? e insertar si no está.

El asunto es que está tardando mucho tiempo en ejecutar y no se me ocurre nada para optimizar. Me parece que el select count() repetido 100 mil veces es lo que está causando el problema.

Los campos Id y usuario_master forman el primary_key y además están indexados por separado.

Agradezco tu tiempo y paciencia.
Saludos