Header Ads Widget

SQL Server Index in Hindi – पूरी जानकार

📚 SQL Server Index in Hindi – पूरी जानकारी

📚 SQL Server Index in Hindi – पूरी जानकारी

🔑 Memory में रखें (Definition)

Index एक डेटा संरचना है जो database table में तेजी से डेटा खोजने (search) के लिए बनाई जाती है। यह किताब के index की तरह काम करता है जहाँ chapter जल्दी ढूंढने में मदद मिलती है।

🧾 Syntax

CREATE INDEX index_name
ON table_name (column1, column2, ...);

🧪 Practical Example

CREATE TABLE Students (
  ID INT PRIMARY KEY,
  Name NVARCHAR(50),
  City NVARCHAR(50)
);

-- Index बनाना:
CREATE INDEX idx_city ON Students(City);

-- अब यह query fast चलेगी:
SELECT * FROM Students WHERE City = 'Delhi';

📂 Index के प्रकार (Types of Indexes)

  • 1. Clustered Index:
    Data physically sort हो जाता है। एक table में सिर्फ 1 ही हो सकता है।
    Clustered Index में data physically sort हो जाता है। यानी जिस column पर clustered index होता है, table उसी के अनुसार arrange हो जाता है।
    📌 एक table में सिर्फ 1 ही clustered index allowed होता है।
    🔹 Example:
    CREATE CLUSTERED INDEX idx_id
    ON Students(ID);
    🔹 Example:2
    
        CREATE TABLE Students (
        StudentID INT PRIMARY KEY,
        Name NVARCHAR(50),
        City NVARCHAR(50)
        );
    
    
    

    ऊपर के code में StudentID पर Primary Key है, और default तौर पर Clustered Index बन जाता है।

    🔍 कैसे काम करता है:अगर आप ये query करते हैं:

    
        SELECT * FROM Students WHERE StudentID = 101;
    
    

    तो SQL Server StudentID के आधार पर sorted search करता है — जिससे बहुत fast result आता है।

    ✅ कब इस्तेमाल करें:

    जब आप किसी एक unique column पर frequent search करते हैं। Primary Key fields पर.

  • 2. Non-Clustered Index:
    Index अलग जगह होता है और pointer से data link करता है।

    Non-Clustered Index table के data को sort नहीं करता, बल्कि data के pointers रखता है। ये एक अलग structure होता है जो actual row तक पहुँचने का रास्ता दिखाता है।

    
        CREATE NONCLUSTERED INDEX idx_city
        ON Students(City);
    
    

    अब जब आप लिखेंगे:

    
        SELECT * FROM Students WHERE City = 'Delhi';
    
    

    तो ये index सीधे City column को scan करता है और matching row के लिए pointer से data fetch करता है।

    ✅ कब इस्तेमाल करें:

    जब table में already clustered index है और आपको अलग column पर fast search चाहिए।
    Multiple frequently used columns पर।

    Example:2
    CREATE NONCLUSTERED INDEX idx_name
    ON Students(Name);
  • 3. Unique Index:
    Duplicate values allow नहीं होती।

    यह ऐसा index है जो duplicate values को allow नहीं करता। यानि indexed column की हर value unique होनी चाहिए।

    Example:1
    CREATE UNIQUE INDEX idx_unique_city
    ON Students(City);
    📘 Example:2
    
        CREATE UNIQUE INDEX idx_email
        ON Users(Email);
    
    

    अब Users table में कोई भी दो users same email नहीं रख सकते।

    ✅ कब इस्तेमाल करें:
    जब आप चाहते हैं कि कोई column जैसे Email, Aadhaar, PAN आदि unique रहे।

  • 4. Composite Index:
    एक से ज्यादा columns पर Index बनाना।

    Composite Index उन columns पर बनता है जो एक साथ बार-बार query में use होते हैं। यह एक index में multiple columns को include करता है।

    CREATE INDEX idx_name_city
    ON Students(Name, City);

    इससे query जल्दी चलेगी:

    
        SELECT * FROM Students WHERE Name = 'Amit' AND City = 'Delhi';
    
    

    ✅ कब इस्तेमाल करें:
    जब आपकी query में multiple columns filter में use होते हैं।

  • 5. Filtered Index:
    सिर्फ selected rows पर index बनाना।

    Filtered Index सिर्फ table की कुछ selected rows पर बनता है।
    इससे index छोटा, तेज़ और efficient होता है।

    Example:1
    CREATE INDEX idx_city_delhi
    ON Students(City)
    WHERE City = 'Delhi';
    Example:2
    
        CREATE INDEX idx_city_mumbai
        ON Students(City)
        WHERE City = 'Mumbai';
         

    अब अगर बार-बार सिर्फ मुंबई के students को filter करना हो, तो यह index बहुत fast काम करेगा।

    ✅ कब इस्तेमाल करें:
    जब आप सिर्फ एक special value या range पर बार-बार search करते हैं।

    ✅ Summary Table
    Index Type Data
    Sorted?
    Duplicate Allowed कब Use करें
    Clustered Index ✅ Yes ✅ Allowed
    Primary Key
    fast access needed
    Non-Clustered Index ❌ No ✅ Allowed Other frequently searched columns
    Unique Index ❌ No ❌ Not Allowed Unique constraints जैसे Email, Aadhaar etc.
    Composite Index ❌ No ✅ Allowed Multi-column filtering के लिए
    Filtered Index ❌ No ✅ Allowed Specific value पर ही indexing करनी हो

📌 Index कब Use करें?

  • जिन columns पर आप WHERE, JOIN, ORDER BY या GROUP BY करते हैं।
  • बार-बार use होने वाले search conditions पर।

⚠️ ध्यान दें

  • Index से SELECT query तेज़ होती है लेकिन INSERT, UPDATE, DELETE धीमे हो सकते हैं।
  • हर column पर Index न लगाएं, वरना performance बिगड़ सकती है।

🎯 Interview Questions & Answers

  1. Q: Index क्या होता है?
    Ans: एक data structure जो search को fast करता है।
  2. Q: Clustered और Non-Clustered Index में अंतर?
    Ans: Clustered में data sort होता है, Non-Clustered में pointer होता है।
  3. Q: क्या एक table में multiple clustered index हो सकते हैं?
    Ans: नहीं, केवल 1 ही clustered index allowed है।
  4. Q: क्या Index performance को slow कर सकता है?
    Ans: हाँ, INSERT, UPDATE, DELETE पर impact पड़ता है।
  5. Q: Composite Index क्या है?
    Ans: जब Index एक से अधिक columns पर बनाया जाता है।

📘 यह पोस्ट Job Oriented Academy द्वारा Index concept को detail में समझाने के लिए तैयार की गई है।

Post a Comment

0 Comments