📚 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);
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 चाहिए।
Example:2
Multiple frequently used columns पर।CREATE NONCLUSTERED INDEX idx_name ON Students(Name);
-
3. Unique Index:
Duplicate values allow नहीं होती।यह ऐसा index है जो duplicate values को allow नहीं करता। यानि indexed column की हर value unique होनी चाहिए।
Example:1CREATE UNIQUE INDEX idx_unique_city ON Students(City);
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 पर बनता है।
Example:1
इससे index छोटा, तेज़ और efficient होता है।CREATE INDEX idx_city_delhi ON Students(City) WHERE City = 'Delhi';
CREATE INDEX idx_city_mumbai ON Students(City) WHERE City = 'Mumbai';
अब अगर बार-बार सिर्फ मुंबई के students को filter करना हो, तो यह index बहुत fast काम करेगा।
✅ कब इस्तेमाल करें:
✅ Summary Table
जब आप सिर्फ एक special value या range पर बार-बार search करते हैं।Index Type Data
Sorted?Duplicate Allowed कब Use करें Clustered Index ✅ Yes ✅ Allowed
Primary Keyfast 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
- Q: Index क्या होता है?
Ans: एक data structure जो search को fast करता है। - Q: Clustered और Non-Clustered Index में अंतर?
Ans: Clustered में data sort होता है, Non-Clustered में pointer होता है। - Q: क्या एक table में multiple clustered index हो सकते हैं?
Ans: नहीं, केवल 1 ही clustered index allowed है। - Q: क्या Index performance को slow कर सकता है?
Ans: हाँ, INSERT, UPDATE, DELETE पर impact पड़ता है। - Q: Composite Index क्या है?
Ans: जब Index एक से अधिक columns पर बनाया जाता है।
📘 यह पोस्ट Job Oriented Academy द्वारा Index concept को detail में समझाने के लिए तैयार की गई है।
0 Comments