Qaerda va qo'shilish ko'rsatkichlari mavjud?
Qaerda va qo'shilish ko'rsatkichlari mavjud?

Video: Qaerda va qo'shilish ko'rsatkichlari mavjud?

Video: Qaerda va qo'shilish ko'rsatkichlari mavjud?
Video: AYOLLAR BO'SHANGANIDA SUYUQLIK OTILIB CHIQISHI, BU QANDAY BO'LADI? 2024, Aprel
Anonim

Aksariyat hollarda, MAVJUD yoki QO'SHILING IN bayonotiga qaraganda ancha samarali (va tezroq) bo'ladi. bilan MAVJUD yoki a QO'SHILING , ma'lumotlar bazasi belgilangan munosabatni tekshirish paytida rost/noto'g'ri qaytaradi. Agar quyi so'rovdagi jadval juda kichik bo'lsa, MAVJUD yoki QO'SHILING IN ga qaraganda ancha yaxshi ishlaydi.

Bundan tashqari, ichki qo'shilish samaradorligi qayerda mavjud?

2 ta javob. Umuman aytganda, ICHKI QO‘SHILMA va MAVJUD har xil narsalardir. Agar siz bir ichki qo'shilish UNIQUE ustunida ular bir xil ko'rinadi ishlash . Agar siz bir ichki qo'shilish DISTINCT qo'llaniladigan yozuvlar to'plamida (dublikatlardan xalos bo'lish uchun), MAVJUD odatda tezroq bo'ladi.

Ikkinchidan, LEFT JOIN qo'shilishdan tezroqmi? A CHAPGA QO'SHILING mutlaqo emas dan tezroq ICHKI QO'SHILING . Aslida, bu sekinroq; ta'rifiga ko'ra, tashqi qo'shilish ( CHAPGA QO'SHILING yoki O'NG QO'SHILING ) INNERning barcha ishlarini bajarishi kerak QO'SHILING plus natijalarni null-kengaytirish qo'shimcha ish.

Shu tarzda qaysi biri tezroq bor yoki ichida?

The MAVJUD bandi juda ko'p Tezroq pastki so'rov natijalari juda katta bo'lsa, IN ga qaraganda. Aksincha, IN bandi Tezroq dan MAVJUD pastki so'rov natijalari juda kichik bo'lsa. Bundan tashqari, IN bandi NULL qiymatlari bilan hech narsani solishtira olmaydi, lekin MAVJUD bandi hamma narsani NULL bilan solishtirishi mumkin.

Qaysi SQL JOIN tezroq?

Xo'sh, umuman olganda ICHKI QO‘SHILMA bo'ladi Tezroq chunki u faqat birlashtirilgan ustun asosida barcha birlashtirilgan jadvallarda mos keladigan satrlarni qaytaradi. Lekin chap QO'SHILING ko'rsatilgan jadvalning barcha satrlarini LEFT va barcha mos keladigan satrlarni RIGHT ko'rsatilgan jadvaldan qaytaradi.

Tavsiya: