Rendimiento de una consulta

Para discutir temas generales, incluso si no tienen que ver directamente con Apache OpenOffice

Rendimiento de una consulta

Notapor jokings80 » Mar Ago 21, 2012 3:34 pm

Hola,

Tengo una página PHP donde se crea una tabla que representa un calendario (cada celda es un día). Y lo que necesito es que en cada celda se muestren las ventas que se hicieron ese día (hasta un máximo de dos registros).

Mi duda es, qué es mejor y, sobre todo, más rápido de entre estas dos opciones. Si se os ocurre alguna, sin duda será bienvenida.

1.- Hacer 30 consultas (28 o 31 depende del mes) a la base de datos donde se recuperen las ventas de ese día. Cuando se crea la celda de la tabla, se hace la consulta y se recuperan los datos de la/s ventas que habría que mostrar para el día que representa esa celda (como mucho dos).

2.- Hacer una única consulta donde se recuperan las ventas de todo el mes y después procesar los datos de la consulta guardándolos en vectores para tratarlos al crear la tabla del calendario. Es decir, por ejemplo tener 2 vectores de 30 (28 o 31) posiciones, una por día y guardar en un vector el código de la primera venta en la posición X para el día X y en otro el código de la segunda venta en la posición X para el día X. La posición del vector representaría el día. Con esto nos ahorraríamos las 30 consultas a la base de datos.

La base de datos tendría entre 500.000 y 1.000.000 de registros, por ello que me preocupa mucho el tema del rendimiento.

La primera opción parece más "limpia", pero las 30 consultas cada vez que se cargue la página me hacen dudar mucho de la rapidez de esa opción.

¿Qué os parece?

Gracias por la ayuda!!

Editado por el moderador (mauricio) para mover el tema a un subforo apropiado. Si no lo has hecho aún por favor lee la Guía de supervivencia
OpenOffice 3.1 en Windows Vista / NeoOffice 2.2.3 con MacOS 10.4
jokings80
 
Mensajes: 9
Registrado: Vie Ago 03, 2012 4:14 pm

Re: Rendimiento de una consulta

Notapor SLV-es » Mar Ago 21, 2012 3:50 pm

No creo que este sea el foro adecuado, pero me voy a atrever a contestar.

Creo que es mejor hacer una consulta que devuelva 30 datos, que no 30 consultas de un dato, más si la base de datos es grande, y mucho más si no está en local o red, sino en intra-internet.

Y creo que te olvidas de una opción: Una consulta de 30 datos que devuelva las ventas de cada día ya procesadas, al menos, hasta el punto que te permitan los datos existentes en la base de datos.

Finalmente, ten en cuenta que PHP se ejecuta en el servidor, no en el ordenador local, por lo que creo, y recalco, creo, que es más conveniente escribir consultas que resuelva el servidor de base de datos, que escribir código para procesar los datos, si es que puede hacerse desde las consultas, claro.

Saludos
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: Rendimiento de una consulta

Notapor jokings80 » Mié Ago 22, 2012 3:23 pm

Hola,

No estaba muy seguro de dónde oner la pregunta, por eso lo hice aquí. Lo siento si no era el lugar adecuado.

Gracias por responder, ha sido de gran ayuda.
OpenOffice 3.1 en Windows Vista / NeoOffice 2.2.3 con MacOS 10.4
jokings80
 
Mensajes: 9
Registrado: Vie Ago 03, 2012 4:14 pm


Volver a Discusión general

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados