Foros del Web » Programando para Internet » PHP »

Busquedas sobre Array o sobre BD?

Estas en el tema de Busquedas sobre Array o sobre BD? en el foro de PHP en Foros del Web. Hola, Me gustaría saber qué es mejor al hacer una busqueda, ¿buscar sobre un array o sobre la base de datos? El caso es que ...
  #1 (permalink)  
Antiguo 04/01/2006, 03:55
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Exclamación Busquedas sobre Array o sobre BD?

Hola,

Me gustaría saber qué es mejor al hacer una busqueda, ¿buscar sobre un array o sobre la base de datos?
El caso es que tengo un sistema que al iniciarse carga unos datos de una tabla MySQL sobre una array de objetos. Luego quiero hacer ciertas busquedas y no se si es mejor/mas rapido/etc hacerlo sobre el propio array o volver a consultar la BD.

Gracias por la ayuda.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #2 (permalink)  
Antiguo 04/01/2006, 06:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En general .. cuando ejecutas una sentencia SQL .. tienes un proceso de "conexión y autentificación" contra tu BD que puede demoarar un tiempo (tal vez "insignificante" pero es un tiempo de proceso al fin y al cabo).

Esto se puede optimizar usando conexiones persistentes (mysql_pconnect()) a costa de consumo extra de recursos del servidor.

Por otro lado .. un buen manejo de tus sentencias SQL optimizadas podria ser tal vez más rápido y sobre todo con menos consumo de recursos (memora del servidor? .. proceso?) que trabajar tus array's "en memoria". De hecho a la hora de trabajar un resultado obtenido de una ejecución de una consulta SQL .. puedes eventualmente mover el "puntero" del resultado como para recorrer ese resultado várias veces (sin necesidad de volcarlo a un "array" para trabajarlo desde esta).

También a nivel SQL tienes formas de hacer consultas SQL en "memoria" (tipo "heap") para crear tablas temporales con los resultados y trabajar sobre eso.

En fin .. hay muchas técnicas (muchas pasan por buen manejo de "SQL" y del motor de BD que usas como es Mysql). Pero .. tal vez sin complicarte mucho, haz el "experimiento" tu mismo con tus datos concretos, prueba un método y otro (array vs consulta SQL) y observa los resultados .. Sobre todo prueba con gran cantidad de datos.

Un saludo,
  #3 (permalink)  
Antiguo 04/01/2006, 07:45
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Muchas gracias por la ayuda.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:00.