Igen, mivel a DISTINCT használata (néha egy megjegyzés szerint) eredményeket fog eredményezni Több száz rekord rendezése időt vesz igénybe. Próbálja ki a GROUP BY-t az összes oszlopában, ez néha arra készteti a lekérdezésoptimalizálót, hogy hatékonyabb algoritmust válasszon (legalábbis az Oracle esetében jelentős teljesítménynövekedést tapaszt altam).
Rossz külön használni?
Nos, a "dinct" helytelen használata nemcsak a valódi problémát rejti el (a táblák ismétlődő bejegyzései, a feltétel hiánya az on záradékban), amint azt fentebb tárgy altuk, hanem rontja a lekérdezés teljesítményét… Ezzel a lekérdezés IO költsége (logikai olvasása) jelentősen megnő.
A megkülönböztetés lassítja a lekérdezést?
Nagyon kevés lekérdezés teljesíthet gyorsabban SELECT DISTINCT módban, és nagyon kevés teljesít lassabban (de nem lényegesen lassabban) SELECT DISTINCT módban, de a későbbi esetekben valószínű hogy az alkalmazásnak esetleg meg kell vizsgálnia az ismétlődő eseteket, ami a teljesítmény- és összetettségi terhet az alkalmazásra hárítja.
Jobb a megkülönböztető vagy a GROUP BY használata?
A MySQL-ben a DISTINCT egy kicsit gyorsabbnak tűnik, mint a GROUP BY, ha a Field nincs indexelve. A DISTINCT csak az ismétlődő sorokat szünteti meg, de úgy tűnik, hogy a GROUP BY ezen felül rendezi őket.
Miért ne használjunk megkülönböztetőt az SQL-ben?
Ha a különválasztást a probléma „javítására” akarja használni, akkor valószínűleg rossz teljesítményt kap cserébe. A GROUP BY segítségével összesítő függvényeket használhat, például AVG, MAX, MIN, SUM és COUNT. DISTINCT csak eltávolítja a duplikációkat.