मेरे पास एक प्रश्न है जिसमें मैं 13 बाएं बाहरी जॉइन का उपयोग कर रहा हूं। बहुत बाएं तालिका में एक बड़ा डेटा है, इसलिए क्वेरी निष्पादित करने और परिणाम वापस करने में बहुत अधिक समय लगता है। लेकिन जब मैं परिणाम फ़िल्टर करने के लिए एक खंड का उपयोग कर रहा हूं, तो इसमें बहुत कम समय लगता है। अब मैं उलझन में हूं कि किसके बारे में पहले निष्पादित होता है: जो परिणाम परिणाम उत्पन्न करता है और फिर जहां से क्लॉज फ़िल्टर होता है या पहले यह परिणाम को फ़िल्टर करता है परिणामस्वरूप शामिल होता है।जो पहले चलता है: जुड़ता है या कहां
उत्तर
आम तौर पर, कोई भी डीबीएमएस (जैसे कि एसक्यूएल) अपना स्वयं का क्वेरी ऑप्टिमाइज़ेशन करेगा, जो एल्गोरिदम का उपयोग करता है जो यह सबसे तेज़ है। तो यह फ़िल्टरिंग है, फिर शामिल हो रहा है।
पढ़ें: which one runs first in query execution WHERE CLAUSE orJOIN CLAUSE ?
और
मैं पिनाल डेव के पद Reding रहा हूँ और मैं इस पाया, यह मदद talso migh आप को समझने के लिए
उस खंड पर समझें जो जॉइन से पहले लागू होता है, यही कारण है कि यह तालिका 2 के सभी परिणाम पुनर्प्राप्त करता है जहां फ्लैग = 1 है लेकिन यह तालिका 1 को प्रभावित नहीं करता है, इसलिए यह तालिका 1 की सभी पंक्तियों को पुनर्प्राप्त करता है। जब WHERE क्लॉज लागू होता है तो यह पूर्ण परिणाम पर लागू होता है, इसलिए यह तालिका 1 और तालिका 2 से सभी पंक्तियों को हटा देता है जहां ध्वज 1 के बराबर नहीं है, अनिवार्य रूप से तालिका 1 और तालिका 2 से ध्वज = 1 पंक्तियों को रखना।
Copied from my previous answer
create table A(id int);
create table B(id int);
INSERT INTO A VALUES(1);
INSERT INTO A VALUES(2);
INSERT INTO A VALUES(3);
INSERT INTO B VALUES(1);
INSERT INTO B VALUES(2);
INSERT INTO B VALUES(3);
SELECT * FROM A;
SELECT * FROM B;
id
-----------
1
2
3
id
-----------
1
2
3
फ़िल्टर पर शामिल हों प्रक्रिया के दौरान शामिल होने से रोकने के लिए पंक्तियों में शामिल हों।
select a.*,b.*
from A a left join B b
on a.id =b.id and a.id=2;
id id
----------- -----------
1 NULL
2 2
3 NULL
जॉइन होने के बाद फ़िल्टर किया जाएगा।
select a.*,b.*
from A a left join B b
on a.id =b.id
where a.id=2;
id id
----------- -----------
2 2
- 1. LINQ जुड़ता है - प्रदर्शन
- 2. मुख्य() से पहले क्या चलता है?
- 3. स्ट्रेस पहले से चल रही प्रक्रिया से कैसे जुड़ता है?
- 4. ट्रेस LINQ जब जुड़ता है
- 5. क्या कोई प्रोग्रामिंग वातावरण है जो आईफोन पर चलता है?
- 6. क्या कोई सीएलआर है जो सीएलआर पर चलता है?
- 7. .नेट फ्रेमवर्क संस्करण (या क्या चलता है?)
- 8. jQuery $ .closest() (या जो भी पहले आता है)
- 9. MySQL जुड़ता है और पूर्ण पाठ खोज
- 10. टी-एसक्यूएल - बाएं बाहरी जुड़ता है - क्लॉज
- 11. विकेट: घटक कहां जोड़ें? निर्माता? या पहले से पहले?
- 12. root_path या root_url कहां है?
- 13. पासवर्ड से पहले या उससे पहले पासवर्ड से जुड़ा हुआ एसएएलटी कहां है?
- 14. क्या एंड्रॉइड प्रसारण रिसीवर लिखना संभव है जो पता चलता है कि फ़ोन कब उठता है?
- 15. एक दृश्य कैसे पता चलता है कि किस लेआउट का उपयोग करना है? डिफ़ॉल्ट कहां है?
- 16. ड्रॉप प्रक्रिया जो पहले से मौजूद है?
- 17. क्या कोई ऐसा सीएमएस है जो Google App Engine पर चलता है जो प्लोन (कुछ मामलों में) से तुलनीय है?
- 18. लिनक्स कर्नेल कैसे पता चलता है कि ड्राइवर फर्मवेयर कहां देखना है?
- 19. ऑपरेशन प्राथमिकता। (GUI अपडेट होने से पहले एक ऑब्जेक्ट तत्काल हो जाता है और चलता है?)
- 20. सेटफ्रेम नहीं चलता है, केवल
- 21. पर्ल प्रोग्राम कैसे पता चलता है कि फ़ाइल को पर्ल मॉड्यूल युक्त फ़ाइल कहां मिलती है?
- 22. MySQL जॉइन एक ही टेबल पर एकाधिक जुड़ता है?
- 23. जो तेजी से है, INSERT से पहले या उसके बाद EXISTS?
- 24. डिवाइस ड्राइवर कोड कहां है? कर्नेल स्पेस या उपयोगकर्ता स्पेस?
- 25. यूनिक्स फोर्क() सिस्टम कॉल कब चलता है?
- 26. कैसे/कब 'after_filter' काम करता है/चलता है?
- 27. कोई सफलतापूर्वक TFS 2010 वर्कटाइम स्टोर से कैसे जुड़ता है?
- 28. क्या कोई वितरित फ़ाइल सिस्टम है जो हैडोप को छोड़कर विंडोज पर चलता है?
- 29. डेटाग्रिड किसी संग्रह के गुणों से कैसे जुड़ता है?
- 30. ओरेकल (पुराना?) जुड़ता है - रूपांतरण के लिए एक टूल/स्क्रिप्ट?
ध्यान रखें कि कैसे SQL सर्वर की क्वेरी अनुकूलक के चारों ओर अपने चरणों शफ़ल करने के लिए चुनता की परवाह किए बिना, सबसे अच्छी बात आप कर सकते हैं ठीक से बनाए रखने और सूचकांक अपने डेटा है तो सर्वर और अधिक आसानी से अपना काम करते आ सकता है। –
अच्छी तरह से बनाए रखा 'सांख्यिकी' भी मदद करते हैं। – MarkD
अपनाने के लिए मत भूलना और इसे स्वीकार करने के रूप में चिह्नित करें अगर आपको वह जानकारी मिलती है जो आपको wnat –