Knowledge, explaination and everything is excellent. Thank you so much ❤. I have a little comment, it may help. The studio you use to show algebra cases is not very clear, I think something with white background where writing is on a larger scale may be more helpful 25:19
You illustrated this topic in a very perfect way but I have a question in the context of performance, which is better for the performance using IN operator or EXISTS? And in which cases should I use IN or EXISTS
That really depends on the query, the data, and the optimizer. In the example I gave, both resulted in the exact same plan. So in this case, there's no difference. That's not always true. If the data size changes or the query changes, one might be better than the other. In most cases, the query optimizer can figure it out :)
كنت عايز اسال هل الperformance في حاله ال join بيكون احسن من اني استخدم ال subquery ولا مش بتفرق يعني لو عملت الطريقه الاولي اني اعمل inner join و بعد كدا اجيب بس الcustomer الي عندها استورز و اعمل distinct افضل كا performance ولا مش بتفرق ؟
فى حالة المثالين الاخيرين الsubquery احسن لأنها كده كده بتتنفذ على هيئة join اللى هو semi join فده من الاساس مش هيؤدى إلى تكرار البيانات. لو عملت inner join و كل row في ال customers يقابل اكتر من store ده هايعمل تكرار فلازم تعمل district بعد كده و دي عملية زيادة لها cost. ففي الحالة دي افضل انك تتجنب كل ده من الاول وتستخدم الsubquery
الouter join غير الcartesian product الcartesian product هو عبارة عن كل الpairs الممكنة ما بين A و B بدون اي join condition أما الouter join فلها join condition و على حسب نوع الouter join (إذا كان left أو right أو full) ده بيحدد طريقة التعامل مع الrows اللى مش بتحقق الjoin condition
لأ هو ده حاجة وده حاجة. يعنى مثلا لو قلنا إن الجدول A فيه column x اللى فيه البيانات التالية: A.x --- 1 2 والجدول B فيه column y اللى فيه التالي: B.y --- 1 4 3 اذا Cartesian product بين A و B هايكون: x | y ---- 1 | 1 1 | 4 1 | 3 2 | 1 2 | 4 2 | 3 أما الfull outer join باستخدام x=y فنتيجته: x | y --- 1 | 1 2 | NULL NULL | 3 NULL | 4 فبالتالي الاتنين مختلفين
أما لو حبينا نعمل الouter join بدون condition فهو كده مبقاش join. كده هو Cartesian product. والكلام ده ينطبق على الinner join كمان. الفكرة في اى join غير الcartesian product هو أن له join condition
اعتقد الترتيب اللى انت قلته منطقى. ولو اني مش مع أن حد يستخدم الفيديوهات دي كمذاكرة لأن انا ممكن ماغطيش كل المواضيع أو التفاصيل بتاعة كل شىء فلازم ترجع لكتب أو كورسات جامعية كمصدر اخر إلى جانب القناة
فخامة وابداع اللهم بارك نحن نستمتع بالشرح يا دكتور ❤❤
ماشاء الله يا باشمهندس والله ,,,, ربنا ييسر لك أمورك ويوفقك إلي كل خير , الحقيقة الشرح والعرض ممتاز
criminally underrated
In this channel understanding wasn't even optional! 😄I absorbed every detail effortlessly.
Genuinely thank u for the priceless content!
Most welcome 😊
Knowledge, explaination and everything is excellent. Thank you so much ❤.
I have a little comment, it may help. The studio you use to show algebra cases is not very clear, I think something with white background where writing is on a larger scale may be more helpful 25:19
بارك الله فيك يدكتور وشكرا جدا علي الشرح الممتع ده ف انتظار اي فديو من حضرتك
شرح أكثر من رائع، ترتيب وتنظيم ممتاز، شكرا جزيلا يا دكتور
شرح واضح واستخدام الانيميشن جدا مفيد
ربنا يبارك فحضرتك ي دكتور
You illustrated this topic in a very perfect way but I have a question in the context of performance, which is better for the performance using IN operator or EXISTS? And in which cases should I use IN or EXISTS
That really depends on the query, the data, and the optimizer. In the example I gave, both resulted in the exact same plan. So in this case, there's no difference. That's not always true. If the data size changes or the query changes, one might be better than the other. In most cases, the query optimizer can figure it out :)
عظيم ❤
شكرا لحضرتك علي الشرح 👏
Thanks for your efforts.
Could you please show us how you design a database with good practices
th-cam.com/video/gZ5iYMkrcfQ/w-d-xo.html
جميل كالعاده 🖤
عظمه
ممكن تعمل فديو عن common table experience
شوف الفيديو الاخير Common table expressions vs. Subqueries
كنت عايز اسال هل الperformance في حاله ال join بيكون احسن من اني استخدم ال subquery ولا مش بتفرق
يعني لو عملت الطريقه الاولي اني اعمل inner join و بعد كدا اجيب بس الcustomer الي عندها استورز و اعمل distinct افضل كا performance ولا مش بتفرق ؟
فى حالة المثالين الاخيرين الsubquery احسن لأنها كده كده بتتنفذ على هيئة join اللى هو semi join فده من الاساس مش هيؤدى إلى تكرار البيانات. لو عملت inner join و كل row في ال customers يقابل اكتر من store ده هايعمل تكرار فلازم تعمل district بعد كده و دي عملية زيادة لها cost. ففي الحالة دي افضل انك تتجنب كل ده من الاول وتستخدم الsubquery
سوءال يا دكتور من فضلك .. هو مش ال OUTER JOIN هو ال CARTESIAN PRODUCT
الouter join غير الcartesian product
الcartesian product هو عبارة عن كل الpairs الممكنة ما بين A و B بدون اي join condition
أما الouter join فلها join condition و على حسب نوع الouter join (إذا كان left أو right أو full) ده بيحدد طريقة التعامل مع الrows اللى مش بتحقق الjoin condition
@@TechVault_ نقدر نقول ان ال Cartesian product هو general case لل outer full join without any conditions?
لأ هو ده حاجة وده حاجة.
يعنى مثلا لو قلنا إن الجدول A فيه column x اللى فيه البيانات التالية:
A.x
---
1
2
والجدول B فيه column y اللى فيه التالي:
B.y
---
1
4
3
اذا Cartesian product بين A و B هايكون:
x | y
----
1 | 1
1 | 4
1 | 3
2 | 1
2 | 4
2 | 3
أما الfull outer join باستخدام x=y فنتيجته:
x | y
---
1 | 1
2 | NULL
NULL | 3
NULL | 4
فبالتالي الاتنين مختلفين
أما لو حبينا نعمل الouter join بدون condition فهو كده مبقاش join. كده هو Cartesian product. والكلام ده ينطبق على الinner join كمان. الفكرة في اى join غير الcartesian product هو أن له join condition
@@TechVault_ تمام يا دكتور وضحت الف شكر لحضرتك
باشهندس عمرو الحلو
اسم علي مسمي 😂❤
لو حد هيذاكر في القناة يبشمندس ترشح ترتيب معين لقوائم التشغيل يعني ال design قبل ال internals او العكس ؟
اعتقد الترتيب اللى انت قلته منطقى. ولو اني مش مع أن حد يستخدم الفيديوهات دي كمذاكرة لأن انا ممكن ماغطيش كل المواضيع أو التفاصيل بتاعة كل شىء فلازم ترجع لكتب أو كورسات جامعية كمصدر اخر إلى جانب القناة
تمام يبشمندس
ربنا يبارك في حضرتك❤
@@TechVault_ ممكن حضرتك ترشح لينا كتب او كورسات جامعيه معينه ؟
♥️💙♥️💙♥️💙♥️💙