Къде съществува спрямо представяне на присъединяване?
Къде съществува спрямо представяне на присъединяване?

Видео: Къде съществува спрямо представяне на присъединяване?

Видео: Къде съществува спрямо представяне на присъединяване?
Видео: Създаване на профилна система PVC прозорец - стъпка по стъпка 2024, Април
Anonim

В повечето случаи, СЪЩЕСТВУВА или ПРИСЪЕДИНЯВАНЕ ще бъде много по-ефективно (и по-бързо) от IN изявление. С ан СЪЩЕСТВУВА или а ПРИСЪЕДИНЯВАНЕ , базата данни ще върне true/false, докато проверява посочената връзка. Освен ако таблицата в подзаявката не е много малка, СЪЩЕСТВУВА или ПРИСЪЕДИНЯВАНЕ ще се представи много по-добре от IN.

Освен това, къде съществува спрямо ефективност на вътрешното присъединяване?

2 отговора. Общо казано, ВЪТРЕШНО ПРИСЪЕДИНЕНИЕ и СЪЩЕСТВУВА са различни неща. Ако направите един вътрешно съединение на УНИКАЛНА колона, те показват същото производителност . Ако направите един вътрешно съединение върху набор от записи с приложен DISTINCT (за да се отървете от дубликатите), СЪЩЕСТВУВА обикновено е по-бързо.

Второ, LEFT JOIN по-бързо ли е от присъединяването? А ЛЯВО ПРИСЪЕДИНЯВАНЕ абсолютно не е по-бърз от ВЪТРЕШЕН ПРИСЪЕДИНЯВАНЕ . Всъщност това е по-бавно; по дефиниция, външен присъединяване ( ЛЯВО ПРИСЪЕДИНЯВАНЕ или дясно ПРИСЪЕДИНЯВАНЕ ) трябва да върши цялата работа на ВЪТРЕШЕН ПРИСЪЕДИНЯВАНЕ плюс допълнителната работа за нулево удължаване на резултатите.

По този начин кое е по-бързо съществува или в?

В СЪЩЕСТВУВА клаузата е много по-бързо отколкото IN, когато резултатите от подзаявката са много големи. Обратно, клаузата IN е по-бързо отколкото СЪЩЕСТВУВА когато резултатите от подзаявката са много малки. Също така клаузата IN не може да сравнява нищо с NULL стойности, но СЪЩЕСТВУВА клаузата може да сравнява всичко с NULL.

Кой SQL JOIN е по-бърз?

Е, общо взето ВЪТРЕШНО ПРИСЪЕДИНЕНИЕ ще бъде по-бързо защото връща само редовете, съвпадащи във всички обединени таблици въз основа на присъединената колона. Но НАЛЯВО ПРИСЪЕДИНЯВАНЕ ще върне всички редове от таблица, посочена LEFT, и всички съвпадащи редове от таблица, посочена RIGHT.

Препоръчано: