Son esencialmente equivalentes entre sí (de hecho, así es como algunas bases de datos implementan DISTINCT
debajo del capó).
Si uno de ellos es más rápido, será DISTINCT
. Esto se debe a que, aunque los dos son iguales, un optimizador de consultas tendría que detectar el hecho de que su GROUP BY
no se está aprovechando de ningún miembro del grupo, solo de sus llaves. DISTINCT
hace esto explícito, por lo que puede salirse con la suya con un optimizador un poco más tonto.
En caso de duda, ¡prueba!