Logo lt.boatexistence.com

Ar paveiks našumą?

Turinys:

Ar paveiks našumą?
Ar paveiks našumą?

Video: Ar paveiks našumą?

Video: Ar paveiks našumą?
Video: Гибкий маркетинг - пошаговое руководство 2024, Gegužė
Anonim

Taip, nes naudojant DISTINCT (kartais pagal komentarą) bus užsakomi rezultatai Šimtų įrašų rūšiavimas užtrunka. Išbandykite GROUP BY visus savo stulpelius, kartais užklausos optimizavimo priemonė gali pasirinkti efektyvesnį algoritmą (bent jau su Oracle pastebėjau didelį našumo padidėjimą).

Ar blogai naudoti skirtingus?

Na, netinkamas „skirtingas“naudojimas ne tik paslepia tikrąją problemą (pasikartoja įrašai lentelėse, nėra sąlygos on sąlygoje), kaip aptarta aukščiau, bet ir blogina užklausos našumą… Dėl to užklausos IO kaina (loginiai skaitymai) žymiai padidės.

Ar dėl skirtumo užklausa sulėtėja?

Labai kelios užklausos gali veikti greičiau SELECT DISTINCT režimu, o labai mažai užklausų veiks lėčiau (bet ne žymiai lėčiau) režimu SELECT DISTINCT, bet vėlesniu atveju tikėtina, kad kad programai gali tekti išnagrinėti pasikartojančius atvejus, o tai perkelia našumo ir sudėtingumo naštą programai.

Ar geriau naudoti atskirą arba GROUP BY?

MySQL sistemoje DISTINCT atrodo šiek tiek greičiau nei GROUP BY, jei laukas neindeksuotas. DISTINCT pašalina tik pasikartojančias eilutes, bet atrodo, kad GROUP BY jas rūšiuoja papildomai.

Kodėl SQL neturėtume naudoti skirtingų?

Jei pasirinksite kitą, kad „išspręstumėte“problemą, tikėtina, kad mainais gausite prastą našumą. GROUP BY leidžia naudoti suvestines funkcijas, pvz., AVG, MAX, MIN, SUM ir COUNT. ATSKIRTI tiesiog pašalina dublikatus.

Rekomenduojamas: