Ver Mensaje Individual
  #9 (permalink)  
Antiguo 18/03/2013, 21:38
Avatar de portalmana
portalmana
 
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: Optimizacion de algoritmo o optimizacion de BD?

Esto definiendo el campo number como Numerico(bigint).
El problema quizás que perderemos el cero del principio, salvo que pusiéramos zerofill.

Como dices que el Excel trae hasta mas o menos 50.000 números, yo prefiero cargar los números de excel a un arreglo, pues este quizás no siga creciendo pero la base muy probablemente si.
Luego por las dudas y para no saturar el servidor partiría la búsqueda en las consultas tu podrías elegir en cuantos ciclos realizas el traspaso.

Por ejemplo si el excel tiene 50.000 lineas y dices en 10 ciclos, entonces tomaría
el valor cero del array que tiene cargado el excel que es el numero mas chico y el valor 4.999 y limitaría la consulta a ese rango.
Quedaría mas o menos así:
Código PHP:
Ver original
  1. (SELECT number FROM tbl_blacklist WHERE number BETWEEN valorMin AND valorMax) UNION (SELECT number FROM tbl_cmdatabase WHERE number BETWEEN valorMin AND valorMax) ORDER BY number
  2. // Bueno puedes poner >< que debera ir mas rapido.
y haces mas o menos lo mismo que estas haciendo, verificar que cada numero del excel no este en el arreglo de resultados y repites para los ciclos que elegiste.

No se si mejorara la performance pero es una idea.
Lo otro es con procedimientos almacenados en la propia base mysql.

Saludos y suerte
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp