Logo hy.boatexistence.com

Արդյո՞ք տարբերությունը կազդի աշխատանքի վրա:

Բովանդակություն:

Արդյո՞ք տարբերությունը կազդի աշխատանքի վրա:
Արդյո՞ք տարբերությունը կազդի աշխատանքի վրա:

Video: Արդյո՞ք տարբերությունը կազդի աշխատանքի վրա:

Video: Արդյո՞ք տարբերությունը կազդի աշխատանքի վրա:
Video: Կազդի՞ արդյոք ամերիկյան նավթի կտրուկ արժեզրկումը Հայաստանի վրա 2024, Մայիս
Anonim

Այո, քանի որ DISTINCT-ի օգտագործումը (երբեմն ըստ մեկնաբանության) կհանգեցնի արդյունքների պատվիրմանը Հարյուրավոր գրառումների տեսակավորումը ժամանակ է պահանջում: Փորձեք GROUP BY ձեր բոլոր սյունակներով, երբեմն դա կարող է հանգեցնել հարցումների օպտիմիզատորին ընտրել ավելի արդյունավետ ալգորիթմ (գոնե Oracle-ի դեպքում ես նկատեցի կատարողականի զգալի ձեռքբերում):

Վատ է օգտագործել տարբերվող:

Դե, «տարբերակի» ոչ պատշաճ օգտագործումը ոչ միայն թաքցնում է իրական խնդիրը (աղյուսակների կրկնօրինակ գրառումները, պայմանի բացակայությունը վերևում) ինչպես քննարկվել է վերևում, այլև նվազեցնում է հարցումների կատարումը… Սա կբերի, որ հարցման IO արժեքը (տրամաբանական ընթերցումներ) զգալիորեն կբարձրանա:

Արդյո՞ք տարբերակումը դանդաղեցնում է հարցումը:

Շատ քիչ հարցումներ կարող են ավելի արագ գործել SELECT DISTINCT ռեժիմում, իսկ շատ քչերն ավելի դանդաղ կաշխատեն (բայց ոչ զգալիորեն դանդաղ) SELECT DISTINCT ռեժիմում, բայց ավելի ուշ դեպքում դա հավանական է: որ հայտը կարող է կարիք ունենալ ուսումնասիրելու կրկնօրինակ դեպքերը, ինչը կատարում է և բարդության բեռը տեղափոխում հավելվածի վրա։

Ավելի լավ է օգտագործել տարբեր թե՞ GROUP BY:

MySQL-ում DISTINCT-ը մի փոքր ավելի արագ է թվում, քան GROUP BY, եթե դաշտը ինդեքսավորված չէ: DISTINCT-ը վերացնում է միայն կրկնօրինակ տողերը, բայց GROUP BY-ը, կարծես, դրանք լրացուցիչ տեսակավորում է:

Ինչու մենք չպետք է օգտագործենք տարբեր SQL-ում:

Եթե ընտրված տարբերակն առկա է խնդիրը «շտկելու» համար, ապա հավանական է, որ դրա դիմաց վատ կատարողականություն ստանաք: GROUP BY-ը թույլ է տալիս օգտագործել ագրեգատ գործառույթներ, ինչպիսիք են AVG, MAX, MIN, SUM և COUNT: DISTINCT ուղղակի հեռացնում է կրկնօրինակները.

Խորհուրդ ենք տալիս: