Missä on olemassa vs liittyä suorituskykyä?
Missä on olemassa vs liittyä suorituskykyä?

Video: Missä on olemassa vs liittyä suorituskykyä?

Video: Missä on olemassa vs liittyä suorituskykyä?
Video: Fressis.fi: Miksi nuuska ei paranna suorituskykyä? 2024, Huhtikuu
Anonim

Useimmissa tapauksissa, OLEMASSA tai LIITTYÄ SEURAAN on paljon tehokkaampi (ja nopeampi) kuin IN-lause. Kanssa OLEMASSA tai a LIITTYÄ SEURAAN , tietokanta palauttaa tosi/epätosi, kun se tarkistaa määritetyn suhteen. Ellei alikyselyn taulukko ole hyvin pieni, OLEMASSA tai LIITTYÄ SEURAAN toimii paljon paremmin kuin IN.

Sitä paitsi, missä on sisäinen liitossuorituskyky?

2 vastausta. Yleisesti ottaen, SISÄLIITTYMINEN ja OLEMASSA ovat eri asioita. Jos teet an sisäinen liitos AINUTLAATUISELLA sarakkeella ne näyttävät saman esitys . Jos teet an sisäinen liitos tietuejoukossa, jossa on käytössä DISTINCT (päästä eroon kaksoiskappaleista), OLEMASSA on yleensä nopeampi.

Toiseksi, ONKO LEFT JOIN nopeampi kuin liittyminen? A LEFT LIITY ei todellakaan ole nopeammin kuin SISÄINEN LIITTYÄ SEURAAN . Itse asiassa se on hitaampaa; määritelmän mukaan ulompi liittyä seuraan ( LEFT LIITY tai oikea LIITTYÄ SEURAAN ) on tehtävä kaikki SISÄMINEN LIITTYÄ SEURAAN plus tulosten nollalaajentamisen ylimääräinen työ.

Tällä tavalla, kumpi on nopeampi olemassa vai sisällä?

The OLEMASSA lauseke on paljon nopeammin kuin IN, kun alikyselyn tulokset ovat erittäin suuret. Päinvastoin IN-lause on nopeammin kuin OLEMASSA kun alikyselyn tulokset ovat hyvin pieniä. Myöskään IN-lause ei voi verrata mitään NULL-arvoihin, mutta OLEMASSA lauseke voi verrata kaikkea NULL-arvoihin.

Kumpi SQL JOIN on nopeampi?

No yleisesti SISÄLIITTYMINEN tulee olemaan nopeammin koska se palauttaa vain rivit, jotka on sovitettu kaikissa yhdistetyissä taulukoissa yhdistetyn sarakkeen perusteella. Mutta VASEN LIITTYÄ SEURAAN palauttaa kaikki rivit taulukosta, joka on määritetty LEFT, ja kaikki vastaavat rivit taulukosta, joka on määritetty OIKEALLA.

Suositeltava: