Logo sl.boatexistence.com

Ali bo razlikovanje vplivalo na uspešnost?

Kazalo:

Ali bo razlikovanje vplivalo na uspešnost?
Ali bo razlikovanje vplivalo na uspešnost?

Video: Ali bo razlikovanje vplivalo na uspešnost?

Video: Ali bo razlikovanje vplivalo na uspešnost?
Video: Daniel Schmachtenberger: Will Technology Destroy Us? 2024, Maj
Anonim

Da, saj bo uporaba DISTINCT (včasih glede na komentar) povzročila razporeditev rezultatov Razvrščanje na stotine zapisov zahteva čas. Poskusite GROUP BY vse svoje stolpce, včasih lahko optimizator poizvedb pripelje do tega, da izbere učinkovitejši algoritem (vsaj pri Oraclu sem opazil znatno povečanje zmogljivosti).

Je slabo uporabljati ločeno?

No, nepravilna uporaba izraza "distinct" ne skriva le resnične težave (podvojeni vnosi v tabelah, pomanjkanje pogoja v klavzuli on), kot je razloženo zgoraj, ampak tudi zmanjša učinkovitost poizvedbe… To bo znatno povečalo IO Cost (logično branje) poizvedbe.

Ali zaradi razlikovanja poizvedba postane počasnejša?

Zelo malo poizvedb se lahko izvede hitreje v SELECT DISTINCT načinu, zelo malo pa bo delovalo počasneje (vendar ne bistveno počasneje) v načinu SELECT DISTINCT, vendar je za kasnejši primer verjetno da bo morda morala aplikacija preučiti podvojene primere, kar prenese breme zmogljivosti in zapletenosti na aplikacijo.

Ali je bolje uporabiti ločeno ali GROUP BY?

V MySQL se zdi DISTINCT malo hitrejši kot GROUP BY, če polje ni indeksirano. DISTINCT odstrani samo podvojene vrstice, vendar se zdi, da jih GROUP BY dodatno razvrsti.

Zakaj ne bi smeli uporabljati razločenega v SQL?

Če je za 'popravilo' težave izberite ločeno, boste verjetno v zameno dobili slabo delovanje. GROUP BY vam omogoča uporabo agregatnih funkcij, kot so AVG, MAX, MIN, SUM in COUNT. DISTINCT samo odstrani dvojnike.

Priporočena: