Gdzie istnieje vs wydajność przyłączenia?
Gdzie istnieje vs wydajność przyłączenia?

Wideo: Gdzie istnieje vs wydajność przyłączenia?

Wideo: Gdzie istnieje vs wydajność przyłączenia?
Wideo: Co to jest grzejnikowy system grzewczy i jak on działa. 2024, Marsz
Anonim

W większości przypadków, ISTNIEJE lub PRZYSTĄP będzie znacznie wydajniejsza (i szybsza) niż instrukcja IN. Z ISTNIEJE lub PRZYSTĄP , baza danych zwróci true/false podczas sprawdzania określonej relacji. Chyba że tabela w podzapytaniu jest bardzo mała, ISTNIEJE lub PRZYSTĄP będzie działać znacznie lepiej niż IN.

Poza tym, gdzie istnieje vs wydajność sprzężenia wewnętrznego?

2 odpowiedzi. Ogólnie rzecz biorąc, POŁĄCZENIE WEWNĘTRZNE oraz ISTNIEJE są różne rzeczy. Jeśli zrobisz… połączenie wewnętrzne na kolumnie UNIQUE, pokazują to samo wydajność . Jeśli zrobisz… połączenie wewnętrzne na zestawie rekordów z zastosowanym DISTINCT (aby pozbyć się duplikatów), ISTNIEJE jest zwykle szybszy.

Po drugie, czy LEFT JOIN jest szybszy niż dołączanie? A LEWE POŁĄCZENIE jest absolutnie nie szybszy niż WEWNĘTRZNY PRZYSTĄP . W rzeczywistości jest wolniejszy; z definicji zewnętrzny Przystąp ( LEWE POŁĄCZENIE lub prawo PRZYSTĄP ) musi wykonać całą pracę INNER PRZYSTĄP plus dodatkowa praca polegająca na rozszerzaniu wyników o wartości zerowej.

W ten sposób, co jest szybsze, czy istnieje?

ten ISTNIEJE klauzula jest dużo szybciej niż IN, gdy wyniki podzapytania są bardzo duże. I odwrotnie, klauzula IN to szybciej niż ISTNIEJE gdy wyniki podzapytania są bardzo małe. Ponadto klauzula IN nie może porównywać niczego z wartościami NULL, ale ISTNIEJE klauzula może porównywać wszystko z wartościami NULL.

Która funkcja SQL JOIN jest szybsza?

Cóż, w ogóle POŁĄCZENIE WEWNĘTRZNE będzie szybciej ponieważ zwraca tylko wiersze dopasowane we wszystkich połączonych tabelach na podstawie połączonej kolumny. Ale W LEWO PRZYSTĄP zwróci wszystkie wiersze z tabeli określonej W LEWO i wszystkie pasujące wiersze z tabeli określonej W PRAWO.

Zalecana: