Logo fi.boatexistence.com

Vaikuttaako erillinen suorituskyky?

Sisällysluettelo:

Vaikuttaako erillinen suorituskyky?
Vaikuttaako erillinen suorituskyky?

Video: Vaikuttaako erillinen suorituskyky?

Video: Vaikuttaako erillinen suorituskyky?
Video: Minkä laitteen hankkisin? - ENTER ry:n tietoisku 2024, Saattaa
Anonim

Kyllä, koska DISTINCT:n käyttö (joskus kommentin mukaan) saa tulokset järjestymään Satojen tietueiden lajittelu vie aikaa. Kokeile GROUP BY:tä kaikissa sarakkeissasi, se voi joskus saada kyselyn optimoijan valitsemaan tehokkaamman algoritmin (ainakin Oraclen kanssa huomasin merkittävän suorituskyvyn parantumisen).

Onko huono käyttää erillistä?

No, "distinct" -sanan virheellinen käyttö ei vain piilota todellista ongelmaa (päällekkäiset merkinnät taulukoissa, ehtojen puute on-lauseessa), kuten yllä on käsitelty, vaan myös heikentää kyselyn suorituskykyä… Tämä tuo kyselyn IO-kustannusten (loogisten lukujen) nousun huomattavasti.

Hidastaako erittely kyselyä?

Hyvin harvat kyselyt voivat toimia nopeammin SELECT DISTINCT -tilassa, ja hyvin harvat toimivat hitaammin (mutta ei merkittävästi hitaammin) SELECT DISTINCT -tilassa, mutta myöhemmässä tapauksessa se on todennäköistä että sovelluksen on ehkä tutkittava päällekkäiset tapaukset, mikä siirtää suorituskyvyn ja monimutkaisuuden taakan sovellukselle.

Onko parempi käyttää erillistä vai GROUP BY:tä?

MySQL:ssä DISTINCT näyttää hieman nopeamm alta kuin GROUP BY, jos kenttää ei ole indeksoitu. DISTINCT poistaa vain päällekkäiset rivit, mutta GROUP BY näyttää lajittelevan ne lisäksi.

Miksi meidän ei pitäisi käyttää erillistä SQL:ssä?

Jos valitse erillinen "korjaa" ongelma, saat todennäköisesti huonon suorituskyvyn vastineeksi. GROUP BY:n avulla voit käyttää koontifunktioita, kuten AVG, MAX, MIN, SUM ja COUNT. DISTINCT vain poistaa kaksoiskappaleet.

Suositeltava: