Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/11/2014, 16:47
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: Optimar consulta SELECT

Hola David_Carrera_G:

En primer lugar comienza por decirnos qué indices tienes declarados en tu tabla... te recomiendo que utilices un índice para cada uno de los campos que están involucrados en las condiciones del WHERE.

En segundo lugar, tienes una condición IN, que de entrada es uno de los operadores que peor rendimiento tienen, ya que hace una búsqueda exhaustiva... en lugar de eso puedes cambiarla por un LEFT JOIN, es decir, hacer algo como esto:

Código MySQL:
Ver original
  1. ...
  2. tbl_desconectados a
  3. INNER JOIN arrears_paso b  ON a.customer_id = b.NRO_SUSCRIPTOR
  4. INNER JOIN ISE_SCORE_NOV14 c ON a.customer_id = c.CLIE_CODIGO
  5. LEFT JOIN (SELECT ibs FROM compromisos_chile) T ON T.ibs = a.customer_id
  6. ...
  7. AND T.ibs IS NULL
  8. ...

Tercero, puedes tratar de incluir algunas de las condiciones en el mismo JOIN... esto no necesariamente es más rápido, depende de las condiciones:

Código MySQL:
Ver original
  1. ...
  2. INNER JOIN arrears_paso b  ON
  3.    a.customer_id = b.NRO_SUSCRIPTOR AND
  4.    b.ESTADO_PRODUCTO = 'D'
  5. ...

Finalmente, dale un EXPLAIN a la consulta, ahí te puedes dar cuenta si hay alguna otra cosa que puedas mejorar.

Haz la prueba y nos comentas los resultados.

Saludos
Leo