Біріктіру өнімділігі қай жерде бар?
Біріктіру өнімділігі қай жерде бар?

Бейне: Біріктіру өнімділігі қай жерде бар?

Бейне: Біріктіру өнімділігі қай жерде бар?
Бейне: Я есть. Ты есть. Он есть_Рассказ_Слушать 2024, Қараша
Anonim

Көп жағдайда, БАР немесе ҚОСЫЛУ IN мәлімдемесіне қарағанда әлдеқайда тиімді (және жылдамырақ) болады. а БАР немесе а ҚОСЫЛУ , дерекқор көрсетілген қатынасты тексеру кезінде шын/жалған мәнін береді. Ішкі сұраудағы кесте өте кішкентай болмаса, БАР немесе ҚОСЫЛУ IN қарағанда әлдеқайда жақсы жұмыс істейді.

Сонымен қатар, ішкі біріктіру өнімділігі қай жерде бар?

2 Жауаптар. Жалпы айтқанда, ІШКІ ҚОСЫЛУ және БАР әртүрлі заттар. Егер сіз а ішкі қосылу UNIQUE бағанында олар бірдей көрінеді өнімділік . Егер сіз а ішкі қосылу DISTINCT қолданылған жазбалар жинағында (көшірмелерден құтылу үшін), БАР әдетте жылдамырақ.

Екіншіден, LEFT JOIN қосылуға қарағанда жылдамырақ па? А СОЛ ҚОСЫЛУ мүлде жоқ қарағанда жылдамырақ ІШКІ ҚОСЫЛУ . Шын мәнінде, ол баяу; анықтамасы бойынша, сыртқы қосылу ( СОЛ ҚОСЫЛУ немесе ОҢ ҚОСЫЛУ ) INNER-дің барлық жұмысын орындау керек ҚОСЫЛУ плюс нәтижелерді нөлдік кеңейту бойынша қосымша жұмыс.

Осылайша, қайсысы жылдамырақ бар ма әлде ішінде ме?

The БАР тармақ көп Тезірек Ішкі сұрау нәтижелері өте үлкен болған кезде IN мәніне қарағанда. Керісінше, IN сөйлемі Тезірек қарағанда БАР ішкі сұрау нәтижелері өте кішкентай болғанда. Сондай-ақ, IN сөйлемі NULL мәндерімен ештеңені салыстыра алмайды, бірақ БАР сөйлем барлығын NULL мәндерімен салыстыра алады.

Қай SQL JOIN жылдамырақ?

Жалпы ІШКІ ҚОСЫЛУ болады Тезірек себебі ол біріктірілген баған негізінде барлық біріктірілген кестелерде сәйкес келетін жолдарды ғана қайтарады. Бірақ СОЛ ҚОСЫЛУ LEFT көрсетілген кестедегі барлық жолдарды және RIGHT көрсетілген кестеден барлық сәйкес жолдарды қайтарады.

Ұсынылған: