Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Panic0 en 24 Julio 2021, 15:52 pm



Título: Como puedo optimizar esta consulta?
Publicado por: Panic0 en 24 Julio 2021, 15:52 pm
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
Código:
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.


Título: Re: Como puedo optimizar esta consulta?
Publicado por: MinusFour en 24 Julio 2021, 16:09 pm
¿Porque no usas AVG?

Código
  1.    agno,
  2.    round(AVG(min),2) as t_min,
  3.    round(AVG(max),2) as t_max,
  4.    round(AVG(anual),2) as t_avg
  5.    bdglobal.datos
  6. WHERE    
  7.    nro_pais = 3
  8.    agno
  9.    agno ASC


Título: Re: Como puedo optimizar esta consulta?
Publicado por: Panic0 en 24 Julio 2021, 16:36 pm
¿Porque no usas AVG?

Código
  1.    agno,
  2.    round(AVG(min),2) as t_min,
  3.    round(AVG(max),2) as t_max,
  4.    round(AVG(anual),2) as t_avg
  5.    bdglobal.datos
  6. WHERE    
  7.    nro_pais = 3
  8.    agno
  9.    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!!