Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] hay una consulta que sea más rapida que la otra?

Es más rápido usar la consulta con having? o usar la query con subquery?

saludos

1 respuesta

¡Hola!

La eficiencia de una consulta SQL puede depender de varios factores, como el diseño de la base de datos, los índices disponibles y el optimizador de consultas del motor de base de datos. En general, no hay una respuesta absoluta sobre si HAVING o una subconsulta es más rápida, ya que depende del contexto específico.

En el caso que mencionas, estás utilizando HAVING para filtrar grupos después de aplicar GROUP BY. Si quisieras reescribir esta consulta utilizando una subconsulta, podría verse algo así:

SELECT DNI, total_facturas FROM (
    SELECT DNI, COUNT(*) as total_facturas FROM facturas
    WHERE YEAR(FECHA_VENTA) = 2016
    GROUP BY DNI
) as subconsulta
WHERE total_facturas > 2000;

Ambas consultas realizan operaciones similares, pero el rendimiento puede variar dependiendo de cómo MySQL optimiza cada una. A veces, las subconsultas pueden ser menos eficientes si no están bien optimizadas, pero en otros casos, podrían ser más rápidas si permiten que el motor de base de datos use índices de manera más efectiva.

Te recomendaría probar ambas consultas en tu entorno y revisar los planes de ejecución para ver cuál es más eficiente en tu caso específico. Puedes hacer esto utilizando la instrucción EXPLAIN antes de tu consulta para obtener más información sobre cómo MySQL está ejecutando la consulta.

Espero haber ayudado y buenos estudios!