Heeft onderscheiden invloed op de prestaties?

Inhoudsopgave:

Heeft onderscheiden invloed op de prestaties?
Heeft onderscheiden invloed op de prestaties?

Video: Heeft onderscheiden invloed op de prestaties?

Video: Heeft onderscheiden invloed op de prestaties?
Video: Invloed van positiviteit | Het beste brein van Nederland 2024, November
Anonim

Ja, omdat het gebruik van DISTINCT (soms volgens een opmerking) ervoor zal zorgen dat resultaten worden geordend Het sorteren van honderden records kost tijd. Probeer GROUP BY al uw kolommen, het kan er soms toe leiden dat de query-optimizer een efficiënter algoritme kiest (tenminste bij Oracle merkte ik een aanzienlijke prestatieverbetering).

Is het slecht om onderscheidend te gebruiken?

Nou, oneigenlijk gebruik van "distinct" verbergt niet alleen het echte probleem (dubbele invoer in de tabellen, gebrek aan voorwaarde in de on-clausule) zoals hierboven besproken, maar verslechtert de prestaties van de query… Dit zal de IO-kosten (logische uitlezingen) van de query aanzienlijk verhogen.

Maakt distinct query langzamer?

Heel weinig zoekopdrachten kunnen sneller worden uitgevoerd in de SELECT DISTINCT-modus, en heel weinig zullen langzamer presteren (maar niet significant langzamer) in de SELECT DISTINCT-modus, maar in het laatste geval is het waarschijnlijk dat de toepassing mogelijk de dubbele gevallen moet onderzoeken, waardoor de last van prestaties en complexiteit naar de toepassing wordt verschoven.

Is het beter om distinct of GROUP BY te gebruiken?

In MySQL lijkt DISTINCT een beetje sneller dan GROUP BY als het veld niet is geïndexeerd. DISTINCT elimineert alleen dubbele rijen, maar GROUP BY lijkt ze bovendien te sorteren.

Waarom zouden we geen distinct gebruiken in SQL?

Als select distinct er is om een probleem te 'repareren', dan krijg je waarschijnlijk een slechte prestatie terug. Met GROUP BY kunt u statistische functies gebruiken, zoals AVG, MAX, MIN, SUM en COUNT. DISTINCT verwijdert gewoon duplicaten.

Aanbevolen: