Որտեղ կա ընդդեմ միանալու կատարում:
Որտեղ կա ընդդեմ միանալու կատարում:

Video: Որտեղ կա ընդդեմ միանալու կատարում:

Video: Որտեղ կա ընդդեմ միանալու կատարում:
Video: ԲԱՐՍԻԿ ԹԱՈՒՆ ՈՐՏԵՂ ԿԱ ԱՆՎԵՐՋ ԲԱՐՍԻԿ?! Minecraft Hayeren 2024, Ապրիլ
Anonim

Շատ դեպքերում, ԳՈՅՈՒՄ Է կամ ՄԻԱՑԵՔ կլինի շատ ավելի արդյունավետ (և ավելի արագ), քան IN հայտարարությունը: հետ ան ԳՈՅՈՒՄ Է կամ ա ՄԻԱՑԵՔ , տվյալների բազան կվերադարձնի true/false՝ նշված հարաբերությունները ստուգելիս: Եթե ենթագրման աղյուսակը շատ փոքր չէ, ԳՈՅՈՒՄ Է կամ ՄԻԱՑԵՔ կկատարի շատ ավելի լավ, քան IN-ը:

Բացի այդ, որտեղ կա ընդդեմ ներքին միացման կատարումը:

2 Պատասխաններ. Ընդհանրապես ասած, ՆԵՐՔԻՆ ՄԻԱՑՈՒՄ և ԳՈՅՈՒՄ Է տարբեր բաներ են։ Եթե դուք անեք մի ներքին միացում ՅՈՒՐԱՔԱՆԱԿԱՆ սյունակի վրա նրանք նույնն են ցուցադրում կատարումը . Եթե դուք անեք մի ներքին միացում DISTINCT-ով կիրառված գրառումների հավաքածուի վրա (կրկնօրինակներից ազատվելու համար), ԳՈՅՈՒՄ Է սովորաբար ավելի արագ է:

Երկրորդ, LEFT JOIN-ն ավելի արագ է, քան միանալը: Ա ՁԱԽ ՄԻԱՑԵԼ բացարձակապես ոչ ավելի արագ քան մի ՆԵՐՔԻՆ ՄԻԱՑԵՔ . Իրականում դա ավելի դանդաղ է; ըստ սահմանման՝ արտաքին միանալ ( ՁԱԽ ՄԻԱՑԵԼ կամ ՃԻՇՏ ՄԻԱՑԵՔ ) պետք է կատարի ՆԵՐՔԻՆ-ի ամբողջ աշխատանքը ՄԻԱՑԵՔ գումարած արդյունքների զրոյական ընդլայնման լրացուցիչ աշխատանքը:

Այս կերպ ո՞րն է ավելի արագ, կա, թե՞:

Այն ԳՈՅՈՒՄ Է կետը շատ է ավելի արագ քան IN, երբ ենթհարցման արդյունքները շատ մեծ են: Ընդհակառակը, IN կետն է ավելի արագ քան ԳՈՅՈՒՄ Է երբ ենթհարցման արդյունքները շատ փոքր են: Բացի այդ, IN կետը չի կարող որևէ բան համեմատել NULL արժեքների հետ, բայց ԳՈՅՈՒՄ Է կետը կարող է ամեն ինչ համեմատել NULL-ների հետ:

Ո՞ր SQL JOIN-ն է ավելի արագ:

Դե, ընդհանուր առմամբ ՆԵՐՔԻՆ ՄԻԱՑՈՒՄ կլինի ավելի արագ քանի որ այն վերադարձնում է միայն միացված սյունակի հիման վրա բոլոր միացված աղյուսակներում համապատասխանող տողերը: Բայց ՁԱԽԸ ՄԻԱՑԵՔ կվերադարձնի բոլոր տողերը LEFT նշված աղյուսակից և բոլոր համապատասխան տողերը նշված աղյուսակից RIGHT:

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