Áno, pretože použitie DISTINCT (niekedy podľa komentára) spôsobí, že výsledky budú objednané Triedenie stoviek záznamov si vyžaduje čas. Skúste GROUP BY všetky svoje stĺpce, môže to niekedy viesť optimalizátora dotazov k výberu efektívnejšieho algoritmu (aspoň pri Oracle som zaznamenal výrazné zvýšenie výkonu).
Je zlé použiť odlišné?
Nesprávne použitie výrazu „výrazný“nielenže skrýva skutočný problém (duplicitné položky v tabuľkách, chýbajúca podmienka v klauzule on), ako je uvedené vyššie, ale aj degraduje výkon dotazu… To výrazne zvýši IO náklady (logické čítanie) dopytu.
Spomalí rozdiel dopyt?
Veľmi málo dopytov môže fungovať rýchlejšie v režime SELECT DISTINCT a veľmi málo z nich bude fungovať pomalšie (ale nie výrazne pomalšie) v režime SELECT DISTINCT, ale pre neskorší prípad je to pravdepodobné že aplikácia môže potrebovať preskúmať duplicitné prípady, čím sa zaťaženie výkonu a zložitosti presúva na aplikáciu.
Je lepšie použiť odlišné alebo GROUP BY?
V MySQL sa zdá, že DISTINCT o niečo rýchlejšie ako GROUP BY, ak pole nie je indexované. DISTINCT odstraňuje iba duplicitné riadky, ale zdá sa, že GROUP BY ich triedi navyše.
Prečo by sme nemali používať odlišné v SQL?
Ak je tu vybrať možnosť „odlišné“na „vyriešenie“problému, je pravdepodobné, že na oplátku dostanete zlý výkon. GROUP BY vám umožňuje používať súhrnné funkcie, ako sú AVG, MAX, MIN, SUM a COUNT. DISTINCT odstráni iba duplikáty.