B-Tree इंडेक्स और उनका लाभ
इंडेक्स वास्तव में क्या संग्रहीत करता है और किन कार्रवाइयों को तेज करता है
B-Tree इंडेक्स और उनका लाभ, CoddyKit पर कोडिंग साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह कोडिंग साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
इंटरव्यू में इंडेक्स के बारे में प्रश्न क्यों पूछे जाते हैं
जब इंटरव्यू लेने वाला कहता है, 'यह क्वेरी धीमी है, आप क्या करेंगे?', तो वह लगभग हमेशा ऐसे उत्तर की अपेक्षा करता है जिसमें इंडेक्स शामिल हो। पढ़ने के प्रदर्शन को बेहतर बनाने का यह सबसे प्रभावी उपाय है, इसलिए इंडेक्स उन उम्मीदवारों को अलग पहचानते हैं जिन्होंने केवल वाक्य-विन्यास याद किया है और उन लोगों को भी, जो समझते हैं कि डेटाबेस वास्तव में पंक्तियाँ कैसे खोजता है।
इस पाठ में आप बी-ट्री इंडेक्स का सटीक मानसिक मॉडल बनाएँगे: इसमें क्या संग्रहीत होता है, यह किन संचालनों को तेज़ करता है और वरिष्ठ अभियंता की तरह इसके बारे में कैसे बात करनी है।
इंडेक्स किस समस्या का समाधान करता है
इंडेक्स के बिना, किसी शर्त से मेल खाने वाली पंक्तियाँ खोजने के लिए डेटाबेस को तालिका की हर पंक्ति पढ़नी पड़ती है। इसे क्रमिक स्कैन (या पूरी तालिका का स्कैन) कहते हैं। दस लाख पंक्तियों वाली तालिका में इसका अर्थ है दस लाख पंक्तियों की जाँच, भले ही केवल एक पंक्ति मेल खाती हो।
इंडेक्स एक अलग, क्रमबद्ध डेटा संरचना है, जो इंजन को सीधे मेल खाने वाली पंक्तियों तक पहुँचने देती है—ठीक वैसे ही जैसे किसी पुस्तक का इंडेक्स हर पृष्ठ पढ़े बिना कोई विषय खोजने देता है।
-- No index: the engine reads ALL rows to find this one
SELECT * FROM users WHERE email = 'ada@example.com';बी-ट्री वास्तव में क्या संग्रहीत करता है
PostgreSQL, MySQL, एसक्यूएल सर्वर और अधिकांश डेटाबेस इंजनों में डिफ़ॉल्ट इंडेक्स बी-ट्री (संतुलित वृक्ष) होता है। इसमें इंडेक्स किए गए कॉलम के मान क्रमबद्ध क्रम में संग्रहीत होते हैं और उन्हें पृष्ठों के एक उथले वृक्ष में व्यवस्थित किया जाता है।
- हर लीफ़ नोड में इंडेक्स कुंजियाँ और वास्तविक तालिका-पंक्ति का एक संकेतक होता है।
- वृक्ष संतुलित रहता है, इसलिए तालिका के आकार की परवाह किए बिना कोई भी खोज केवल कुछ पृष्ठों तक पहुँचती है।
खोज में सभी N पंक्तियों को स्कैन करने के बजाय मूल नोड से लीफ़ नोड तक लगभग log(N) चरण लगते हैं।
अपना पहला इंडेक्स बनाना
आप CREATE INDEX से बी-ट्री इंडेक्स बनाते हैं। इसे स्पष्ट नाम दें, ताकि समीक्षा करने वाला व्यक्ति देखते ही तालिका और कॉलम पहचान सके।
यह इंडेक्स बन जाने के बाद, email पर फ़िल्टर करने वाली क्वेरी पूरे स्कैन के बजाय कुछ ही पृष्ठ पढ़कर मेल खाने वाली पंक्ति खोज सकती है।
CREATE INDEX idx_users_email ON users (email);
-- Now this lookup uses the index instead of scanning
SELECT * FROM users WHERE email = 'ada@example.com';बी-ट्री किन संचालनों को तेज़ करता है
बी-ट्री मानों को क्रमबद्ध रखता है, इसलिए यह केवल सटीक मिलान से कहीं अधिक काम तेज़ करता है। इंटरव्यू लेने वाले तब प्रभावित होते हैं जब आप इन्हें सटीक रूप से गिनाते हैं:
- समानता:
WHERE email = ? - सीमा:
WHERE age > 30,BETWEEN,<,>= - उपसर्ग मिलान:
WHERE name LIKE 'Ada%'(लेकिन'%da'के लिए NOT) - इंडेक्स किए गए कॉलम पर ORDER BY, जिससे अलग से क्रमबद्ध करने की आवश्यकता नहीं रहती
- MIN/MAX, क्योंकि ये क्रमबद्ध संरचना के दोनों छोरों पर होते हैं
उदाहरण सहित समझें: सीमा वाली क्वेरी
लाखों पंक्तियों वाली orders तालिका पर विचार करें। एक रिपोर्टिंग क्वेरी हाल के ऑर्डर माँगती है। created_at पर इंडेक्स होने पर इंजन क्रमबद्ध इंडेक्स में सीमा के आरंभ तक पहुँचता है और केवल आवश्यक दूरी तक आगे बढ़ता है।
इंडेक्स पूरी तालिका के स्कैन को सीमित सीमा-स्कैन में बदल देता है और केवल योग्य भाग पढ़ता है।
CREATE INDEX idx_orders_created_at ON orders (created_at);
SELECT order_id, total
FROM orders
WHERE created_at >= '2026-01-01'
AND created_at < '2026-02-01';इंडेक्स क्रमबद्ध करने में भी मदद करते हैं
एक अक्सर छूटी हुई बात यह है कि इंडेक्स पहले से क्रमबद्ध होता है, इसलिए इंजन पंक्तियों को इंडेक्स के क्रम में लौटा सकता है और अलग क्रमबद्ध चरण छोड़ सकता है। यह ORDER BY और विशेष रूप से शीर्ष-N पृष्ठांकन के लिए महत्वपूर्ण है।
यदि आप ऐसे कॉलम के अनुसार क्रमबद्ध करते हैं जिस पर उपयुक्त इंडेक्स है, तो अनुकूलक इंडेक्स को क्रम से पढ़ सकता है और पर्याप्त पंक्तियाँ मिलते ही रुक सकता है।
-- Index on created_at lets this avoid a sort and stop after 10 rows
SELECT order_id, total
FROM orders
ORDER BY created_at DESC
LIMIT 10;छिपी हुई लागत: हीप फ़ेच
सामान्य बी-ट्री इंडेक्स में केवल इंडेक्स किया गया कॉलम और एक पंक्ति-संकेतक संग्रहीत होता है। इसलिए मेल खाने वाली प्रविष्टियाँ मिलने के बाद भी इंजन को आपके चुने हुए अन्य कॉलम पढ़ने के लिए तालिका (हीप) तक जाना पड़ता है।
इस दूसरी छलाँग को हीप फ़ेच कहते हैं। यह कुछ पंक्तियों के लिए सस्ती होती है, लेकिन जब क्वेरी बहुत सारी पंक्तियों से मेल खाती है तो महँगी पड़ती है। इसी कारण कम चयनात्मकता वाले इंडेक्स को कभी-कभी नज़रअंदाज़ किया जाता है। (कवरिंग इंडेक्स बाद में इसका समाधान करेंगे।)
इंडेक्स के उपयोग की पुष्टि करना
इंडेक्स का उपयोग होने का दावा कभी न करें; EXPLAIN से इसे सिद्ध करें। इंटरव्यू में योजना को शब्दों में समझाने से आपकी वास्तविक समझ दिखाई देती है।
Seq Scanका अर्थ है कि इंडेक्स का उपयोग NOT हुआ।Index ScanयाIndex Seekका अर्थ है कि उसका उपयोग हुआ।
यदि आपने इंडेक्स जोड़ा है, लेकिन फिर भी क्रमिक स्कैन दिखाई देता है, तो योजनाकार ने स्कैन को सस्ता माना है—अक्सर इसलिए कि क्वेरी तालिका के बहुत बड़े हिस्से से मेल खाती है।
EXPLAIN
SELECT * FROM users WHERE email = 'ada@example.com';
-- Look for: Index Scan using idx_users_emailप्राथमिक कुंजियों पर इंडेक्स पहले से होता है
इंटरव्यू में पूछा जाने वाला एक सामान्य पेच: PRIMARY KEY या UNIQUE बाधा घोषित करने पर सहायक बी-ट्री इंडेक्स अपने-आप बन जाता है। आपको उसी कॉलम पर दूसरा इंडेक्स नहीं जोड़ना चाहिए और न ही इसकी आवश्यकता है।
इसी कारण प्राथमिक कुंजियों पर जोड़ और खोज पहले से तेज़ होते हैं, और “क्या मुझे आईडी कॉलम पर इंडेक्स बनाना चाहिए?” जैसा प्रश्न आमतौर पर एक जाल होता है—यह काम आपके लिए पहले ही हो चुका है।
-- This already builds a unique B-Tree index on (id)
CREATE TABLE users (
id BIGINT PRIMARY KEY,
email TEXT UNIQUE
);इंटरव्यू में इसे कैसे कहें
इसे एक साफ़, एक-वाक्यीय उत्तर में जोड़ें, जिससे इंटरव्यू लेने वाला सहमति में सिर हिला सके:
'बी-ट्री इंडेक्स एक क्रमबद्ध, संतुलित संरचना है, जो पूरी तालिका स्कैन करने के बजाय इंजन को log(N) पृष्ठ-पठन में पंक्तियाँ खोजने देती है। यह इंडेक्स किए गए कॉलम पर समानता, सीमा, उपसर्ग और ORDER BY संचालनों को तेज़ करता है, लेकिन हर मेल के लिए गैर-इंडेक्स किए गए कॉलम पढ़ने हेतु हीप फ़ेच की लागत फिर भी आती है।'
फिर इसे EXPLAIN से प्रमाणित करें। मानसिक मॉडल और प्रमाण का यह संयोजन ही अंक दिलाता है।
त्वरित जाँच
बी-ट्री इंडेक्स किन कार्यों को तेज़ करता है, इसकी अपनी मानसिक समझ जाँचें।
पुनरावलोकन: बी-ट्री इंडेक्स
अगले पाठ में साथ ले जाने योग्य मुख्य बातें:
- बी-ट्री इंडेक्स किए गए मानों को संतुलित वृक्ष में क्रमबद्ध रखता है और
log(N)में खोज उपलब्ध कराता है। - यह समानता, सीमा, उपसर्ग (शुरुआती) LIKE, ORDER BY और MIN/MAX को तेज़ करता है।
- इंडेक्स में शामिल न होने वाले कॉलम के लिए हर मेल को अभी भी हीप फ़ेच की आवश्यकता होती है।
- किसी कॉलम को फ़ंक्शन में लपेटने या शुरुआती वाइल्डकार्ड का उपयोग करने से इंडेक्स निष्क्रिय हो जाता है।
- हमेशा
EXPLAINसे पुष्टि करें; PRIMARY KEY और UNIQUE बाधाएँ अपने-आप इंडेक्स बना देती हैं।
अगला विषय: एक ही इंडेक्स में कई कॉलम शामिल हों तो उनका क्रम कैसे तय करें।
एआई शिक्षक के साथ कोडिंग साक्षात्कार की तैयारी सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 90
- पाठ
- 360
अक्सर पूछे जाने वाले प्रश्न
क्या “B-Tree इंडेक्स और उनका लाभ” पाठ निःशुल्क है?
हाँ—“B-Tree इंडेक्स और उनका लाभ” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“B-Tree इंडेक्स और उनका लाभ” में मैं क्या सीखूँगा?
इंडेक्स वास्तव में क्या संग्रहीत करता है और किन कार्रवाइयों को तेज करता है आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ कोडिंग साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या कोडिंग साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर कोडिंग साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“B-Tree इंडेक्स और उनका लाभ” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस कोडिंग साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर कोडिंग साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- B-Tree इंडेक्स और उनका लाभ
- संयुक्त इंडेक्स में स्तंभों का क्रम
- कवरिंग इंडेक्स और इंडेक्स-ओनली स्कैन
- इंडेक्स कब नुकसान पहुँचाते हैं: लेखन और चयनात्मकता