Ver Mensaje Individual
  #13 (permalink)  
Antiguo 15/09/2010, 11:29
Avatar de gnzsoloyo
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: optimizar consulta con 2 tablas mysql

Cita:
new_log solo tiene 16.800 registros y stock 8.200...
Y con esas tablas, ún JOIN, por ejemplo, generaría una tabla temporal de 137.760.000 registros, por ejemplo (no es este caso, pero sucederia si no pusieses condiciones en el FROM).

Tu consulta es optimizable:
Código MySQL:
Ver original
  1. FROM stock S INNER JOIN new_log N ON N.id_sucursal_destino =S.id_sucursal
  2. WHERE stock.id_sucursal =$sucursal
  3. AND fecha_alta BETWEEN '$fecha_ini' AND fecha_alta <= '$fecha_fin'
  4. AND operacion LIKE 'MOVIMIENTO STOCK';
Por otro lado, LIKE en ese contexto resultaría igual que usar "=", con lo qu eesto se podría escribir:
Código MySQL:
Ver original
  1. FROM stock S INNER JOIN new_log N ON N.id_sucursal_destino =S.id_sucursal
  2. WHERE stock.id_sucursal =$sucursal
  3. AND fecha_alta BETWEEN '$fecha_ini' AND fecha_alta <= '$fecha_fin'
  4. AND operacion = 'MOVIMIENTO STOCK';
Esto último es porque no estás usando comodines en el texto buscado, con lo que sólo será verdadero si es igual.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)