La pregunta:¿Gana el where? puede sonar estupida porque para que existitia el having si el where es mejor pero ocurre lo siguiente.
Envio una consulta gigantesca a mi base de datos y nesecito traer un valor en el select_exp y nesecito valorar que esos valores sean mayores a 0(where). Resulta que antes lo hacia asi:
select
consulta_gigantesca from tabla where
consulta_gigantesca>0
consulta_gigantesca: No es un campo. sino una consulta grande sacada de multiples campos y otros valores.
Despues conoci el having y era justamente lo que nesecitaba para evitar enviar la consulta_gigantesca 2 veces y haci optimizar la consulta.ejemplo:
select
consulta_gigantesca as consulta from tabla having consulta>0
Pero resulta que al calcular el tiempo de ejecución con where y con having el que gana es el where
![Pensando](http://static.forosdelweb.com/fdwtheme/images/smilies/scratchchin.gif)
.
El con where demora 0,045 en promedio.
El con having demora 0,052 en promedio.
Esta consulta se va a realizar muchas veces en el dia y no se cual usar.
a simple vista es mejor el where pero puede ser porque aun tengo muy pocos registro en donde se aplica la consulta_grande y cuando tenga más registros el having gane.
La pregunta es ¿Cual es correcto usar?.