Como puedo optimizar esta consulta?

Iniciado por Panic0, 24 Julio 2021, 15:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Panic0

Hola a todos, estoy trabajando con base de datos usando mysql, me mandaron a crear una query que se encargue de crear un promedio, la query es la siguiente
SELECT agno,
                     round(SUM(min) / count(min),2) as t_min,
                     round(SUM(max) / count(max),2)as t_max,
                     round(SUM(anual) / count(anual),2)as t_avg
            FROM
                    bdglobal.datos
            where     
                    nro_pais = 3
            group by    agno
            order by    agno ASC


La query esta bien y funciona, lo que ahora tengo que hacer es tratar de optimizarla, porque esta query busca entre miles de datos y demora bastante (9 segundos). Yo quiero tratar de hacer que demore menos.

Si me pueden ayudar seria genial.
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.

MinusFour

¿Porque no usas AVG?

Código (mysql) [Seleccionar]

SELECT
   agno,
   round(AVG(min),2) as t_min,
   round(AVG(max),2) as t_max,
   round(AVG(anual),2) as t_avg
FROM
   bdglobal.datos
WHERE    
   nro_pais = 3
GROUP BY
   agno
ORDER BY
   agno ASC

Panic0

Cita de: MinusFour en 24 Julio 2021, 16:09 PM
¿Porque no usas AVG?

Código (mysql) [Seleccionar]

SELECT
   agno,
   round(AVG(min),2) as t_min,
   round(AVG(max),2) as t_max,
   round(AVG(anual),2) as t_avg
FROM
   bdglobal.datos
WHERE    
   nro_pais = 3
GROUP BY
   agno
ORDER BY
   agno ASC


Que tal estas MinusFour?

Si la probé, pero a lo que no tengo permitido usar cosas que no llegue a dar en clases dude en usarla.

De todas formas, gracias por tomarte el tiempo en responder!!
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.