[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: [Ayuda] Consejo sobre bases de datos...



Que posibilidades hay para que cambies el campo "fecha" a date ?
Si es posible, pon el formato en 'Annio-Mes-Dia' al momento de insertarlo.

Podrias hacer tu query como:

SELECT year(fecha), month(fecha), dayofmonth(fecha), sum(monto)/100
FROM trans
WHERE fecha >= '2002-08-21' and fecha <= '2003-09-25'
GROUP BY year(fecha), month(fecha), dayofmonth(fecha)



Como tienes que realizar ".. mas de 400 veces " por los dias en que tienes
que realizar los calculos,
agrupandolo de la forma anterior en Perl podrias ir realizando cortes cada
mes, para obtener totales
si eso es a lo que quieres llegar.

Solo una pregunta por que utilizas   WHERE fecha like 'Aug 21 2002 %'    en
lugar de WHERE fecha='Aug 21 2002' ?
Acaso tu variable fecha guarda otros datos aparte de Mes Dia Annio ?



----- Original Message -----
From: "Roberto Villarreal" <roberto villarreal en funktiontech com>
To: <ayuda en linux org mx>
Sent: Wednesday, September 25, 2002 2:14 PM
Subject: [Ayuda] Consejo sobre bases de datos...


> Hola lista, tengo un pequeño problema y quisiera que me dieran su consejo
para poder resolverlo...
>
> Tengo una base de datos en MySQL, hay como 70 tablas, la mas grande tiene
mas de 20 mil registros, y es en esta en la que tengo las broncas...
>
> Esta tabla tiene una estructura similar a esta:
>
> tipo int
> monto int
> fecha varchar(255)
> tiempo int
>
> Es una tabla de transacciones, y lo que yo hago es que la tomo de un
programa de administración en windows (con ms sql) y por medio de la
libreria de sybase la paso a mysql y la fecha es el problema, porque tengo
que hacer consultas por un rango de fecha especifico y en vez de ponerle un
> y un < (como si tuviera un unixtime) tengo que ir dia por dia con un WHERE
fecha LIKE 'Aug 21 2002 %' y esta consulta es para hacer una sumatoria en
monto y tiempo por lo que un query a esta tabla seria algo asi: SELECT
sum(monto)/100 FROM trans WHERE fecha like 'Aug 21 2002 %'. Pero repetida
mas de 400 veces (400 dias)... por lo que se tarda más de 1 minuto en
desplegar una página que a su vez hace esto unas 20 veces con otras tablas u
otros datos en la misma tabla, o sea son 8 mil querys, y aparte se genera
una gráfica...
>
> Mi pregunta es ¿Qué me recomiendan hacer para optimizar todo esto?
>
> Espero me puedan ayudar a tomar una decisión.
>
> Saludos
>
> Roberto Villarreal
> _______________________________________________
> Ayuda mailing list
> Ayuda en linux org mx
> Para salir de la lista: http://mail.linux.org.mx/mailman/listinfo/ayuda/

_______________________________________________
Ayuda mailing list
Ayuda en linux org mx
Para salir de la lista: http://mail.linux.org.mx/mailman/listinfo/ayuda/



[Hilos de Discusión] [Fecha] [Tema] [Autor]