Logo cs.boatexistence.com

Ovlivní odlišnost výkon?

Obsah:

Ovlivní odlišnost výkon?
Ovlivní odlišnost výkon?

Video: Ovlivní odlišnost výkon?

Video: Ovlivní odlišnost výkon?
Video: mySASY - diagnostický systém, který maximalizuje váš výkon 2024, Smět
Anonim

Ano, protože použití DISTINCT (někdy podle komentáře) způsobí, že výsledky budou objednány Třídění stovek záznamů nějakou dobu trvá. Vyzkoušejte GROUP BY všechny své sloupce, může to někdy vést optimalizátora dotazů ke zvolení efektivnějšího algoritmu (alespoň u Oracle jsem zaznamenal výrazné zvýšení výkonu).

Je špatné používat odlišné?

Nesprávné použití výrazu „distinct“nejenže skryje skutečný problém (duplicitní položky v tabulkách, nedostatek podmínky v klauzuli on), jak je uvedeno výše, ale také degraduje výkon dotazu… To výrazně zvýší IO náklady (logické čtení) dotazu.

Zpomaluje rozdíl dotaz?

Velmi málo dotazů může fungovat rychleji v režimu SELECT DISTINCT a velmi málo dotazů bude fungovat pomaleji (ale ne výrazně pomaleji) v režimu SELECT DISTINCT, ale pro pozdější případ je pravděpodobné že aplikace možná bude muset prozkoumat duplicitní případy, což přesune zátěž na výkon a složitost na aplikaci.

Je lepší použít odlišné nebo GROUP BY?

V MySQL se DISTINCT zdá o něco rychlejší než GROUP BY, pokud pole není indexováno. DISTINCT odstraňuje pouze duplicitní řádky, ale zdá se, že GROUP BY je navíc třídí.

Proč bychom neměli používat odlišné v SQL?

Pokud je zde možnost vybrat odlišný problém „opravit“, pravděpodobně na oplátku dostanete špatný výkon. GROUP BY vám umožňuje používat agregační funkce, jako je AVG, MAX, MIN, SUM a COUNT. DISTINCT jen odstraňuje duplikáty.

Doporučuje: