table से नहीं, queries से शुरू करें। देखें कि WHERE, JOIN और ORDER BY में क्या आता है, फिर ऐसा composite index बनाएं जिसमें equality वाले columns पहले और range या sort वाला column आखिर में हो। EXPLAIN ANALYZE से पुष्टि करें कि sequential scan की जगह index scan आ गया। हर index write throughput और storage की कीमत लेता है, तो बिना इस्तेमाल वाले हटा दें और कम cardinality वाले column पर अकेले index लगाने से बचें।
इंटरव्यूअर यह क्यों पूछते हैं
indexing वह डेटाबेस कौशल है जिससे फुल स्टैक डेवलपर को सबसे ज़्यादा फायदा मिलता है, और जब तक कोई column के क्रम पर न पूछे तब तक इसमें दिखावा आसान है। इंटरव्यूअर जानना चाहता है कि आप query plans पढ़ते हैं या नहीं, आप समझते हैं या नहीं कि indexes मुफ्त रफ्तार नहीं, write पर टैक्स हैं, और आप यह पकड़ पाएंगे या नहीं कि हर column पर index लगाना एक आम और महंगी गलती है।
अपना जवाब कैसे स्ट्रक्चर करें
- कहें कि indexes schema नहीं, query के pattern के पीछे चलते हैं।
- composite index में columns का क्रम समझाएं।
- बताएं कि आप query plan से पुष्टि कैसे करते हैं।
- लागत वाला पहलू गिनाएं: writes, storage, बिना इस्तेमाल वाले indexes।
उदाहरण जवाब
मैं डिज़ाइन के वक्त अंदाज़ा लगाने की जगह slow query log से उल्टा चलता हूं। ऐसी query लीजिए जो tenant id और status पर filter करती है और created at से sort करती है। वहां सही index tenant id, status, created at पर इसी क्रम में है, क्योंकि equality वाले predicates पहले जाते हैं और sort वाला column आखिर में ताकि index ordering भी पूरी कर सके। created at पहले रख दीजिए तो उस query के लिए index लगभग बेकार है। फिर मैं सच में EXPLAIN ANALYZE चलाता हूं और देखता हूं कि plan बदला या नहीं और row के अनुमान वाजिब हैं या नहीं, क्योंकि planner index को अनदेखा कर देगा अगर उसे लगे कि वह वैसे भी table का ज़्यादातर हिस्सा छू लेगा। लागत की तरफ, मैंने ऐसी write heavy table देखी है जिसमें ग्यारह indexes थे और inserts ही अड़चन थे, और चार बिना इस्तेमाल वाले हटाने से ingest throughput लगभग दोगुना हो गया। Postgres में मैं कुछ भी हटाने का प्रस्ताव देने से पहले pg_stat_user_indexes में शून्य scans वाले indexes देखता हूं, और लाइव table पर उन्हें concurrently बनाता हूं।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- covering index क्या है और वह कब मदद करता है?
- अभी जोड़े गए index को planner क्यों अनदेखा कर सकता है?
- इसकी जगह partial index कब इस्तेमाल करेंगे?
फुल स्टैक डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें