Те са по същество еквивалентни един на друг (всъщност това е начинът, по който някои бази данни прилагат DISTINCT под капака).
Ако един от тях е по-бърз, ще бъде DISTINCT . Това е така, защото въпреки че двете са едни и същи, оптимизаторът на заявки ще трябва да улови факта, че вашият GROUP BY не се възползва от никакви членове на групата, а само от техните ключове. DISTINCT прави това изрично, така че можете да се разминете с малко по-тъп оптимизатор.
Когато се съмнявате, тествайте!