Logo sv.boatexistence.com

Kommer distinkt påverka prestanda?

Innehållsförteckning:

Kommer distinkt påverka prestanda?
Kommer distinkt påverka prestanda?

Video: Kommer distinkt påverka prestanda?

Video: Kommer distinkt påverka prestanda?
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Maj
Anonim

Ja, eftersom användning av DISTINCT kommer (ibland enligt en kommentar) att göra att resultat beställs Att sortera hundratals poster tar tid. Prova GROUP BY alla dina kolumner, det kan ibland leda till att frågeoptimeraren väljer en mer effektiv algoritm (åtminstone med Oracle märkte jag en betydande prestandaökning).

Är det dåligt att använda distinkt?

Tja, felaktig användning av "distinkt" döljer inte bara det verkliga problemet (dubblettposter i tabellerna, brist på villkor i on-satsen) som diskuterats ovan utan också försämrar frågeprestanda… Detta kommer att leda till att IO-kostnaden (logiska läsningar) för frågan ökar avsevärt.

Gör distinkt sökfrågan långsammare?

Väldigt få frågor kan fungera snabbare i SELECT DISTINCT-läge, och very few kommer att fungera långsammare (men inte nämnvärt långsammare) i SELECT DISTINCT-läget, men i det senare fallet är det troligt att applikationen kan behöva undersöka dubblettärendena, vilket flyttar prestanda- och komplexitetsbördan till applikationen.

Är det bättre att använda distinkt eller GROUP BY?

I MySQL verkar DISTINCT lite snabbare än GROUP BY om fältet inte är indexerat. DISTINCT eliminerar bara dubbletter av rader men GROUP BY verkar sortera dem dessutom.

Varför ska vi inte använda distinkt i SQL?

Om utvald distinkt är till för att "fixa" ett problem så kommer du sannolikt att få en dålig prestation i gengäld. GROUP BY låter dig använda aggregerade funktioner, som AVG, MAX, MIN, SUM och COUNT. DISTINCT tar bara bort dubbletter.

Rekommenderad: