Types of Indexes (Unique, Composite, Full-text) In Hindi
एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम मे इंडेक्स डेटाबेस क्वेरी परफॉर्मेंस को मैनेज कण्ट्रोल या आटोमेटिक ऑप्टिमाइज़ करने के लिए एक इम्पोर्टेन्ट फीचर्स हैं. स्पेशली, जब डेटाबेस यूजर हैवी लार्ज वॉल्यूम डाटा रीड ऑपरेशन्स के लिए इसे यूज़ करते है। किसी डेटाबेस टेबल में जरूरत के अनुसार कई तरह के टेबल क्वेरी इंडेक्स क्रिएट किए जा सकते हैं, यहाँ एसक्यूएल डेटाबेस टेबल मे इंडेक्स के कई एडवांटेज और फीचर्स है.

Let’s explore indexing and its types in SQL database management systems in more detail.
Unique Index in Database Management.
एसक्यूएल डेटाबेस टेबल में एक यूनिक इंडेक्स यह फिक्स करता है कि इंडेक्स किए गए टेबल कॉलम फील्ड में सभी टेबल रोज वैल्यू यूनिक नेचर की हों। यह डेटाबेस यूजर को टेबल कॉलम में डुप्लीकेट डाटा वैल्यू को ब्लॉक कर डेटाबेस डेटा की इंटीग्रिटी को मेन्टेन रखता है। जब किसी टेबल कॉलम पर यूनिक कंस्ट्रेंट अप्लाई किया गया हो जैसे, PRIMARY KEY या UNIQUE के रूप में डिफाइन किया गया है. तो इस तरह के टेबल कॉलम फील्ड कंस्ट्रेंट को अप्लाई करने के लिए एक यूनिक इंडेक्स सेल्फ क्रिएट हो जाता जाता है।
Use Case of Unique Index.
- Enforcing uniqueness – यह डेटाबेस यूजर द्वारा डिफाइन किसी भी डेटाबेस टेबल में फिक्स करता है कि किसी टेबल कॉलम या कॉलम फील्ड के कॉम्बिनेशन में कोई डुप्लीकेट वैल्यू इन्सर्ट या मौजूद न हो, जैसे कि एम्प्लॉई आईडी, सोशल सिक्योरिटी नंबर, ई-मेल, या एम्प्लॉई नेम, आदि है।
Example of a Unique Index.
यहाँ एक एम्प्लॉई टेबल को एनालाइज करें, जहाँ डेटाबेस टेबल में हर एम्प्लॉई का एक यूनिक ई-मेल एड्रेस होना चाहिए।
CREATE UNIQUE INDEX indx_email
ON employee (e-mail);
यहाँ क्रिएट इंडेक्स यह फिक्स करता है कि एम्प्लॉई टेबल में किसी भी दो टेबल रो में ई-मेल वैल्यू एक जैसी या समान न हो।
Primary Key – डेटाबेस टेबल में SQL डेटाबेस प्राइमरी की कॉलम के लिए एक यूनिक इंडेक्स क्रिएट करते हैं, जिससे कि यह फिक्स किया जा सके कि प्राइमरी की कंस्ट्रेंट वैल्यू टेबल कॉलम में बनी रहे।
Composite Index (Multi-Column Index) in Database Management.
एसक्यूएल डेटाबेस टेबल में एक कम्पोजिट इंडेक्स जिसे मल्टी-कॉलम इंडेक्स के रूप में भी जाना जाता है) एक प्रकार का ऐसा इंडेक्स मेथड है. जो किसी डेटाबेस टेबल में एक से ज़्यादा टेबल कॉलम फील्ड पर क्रिएट किया जाता है। एक कम्पोजिट इंडेक्स तब यूज़फुल होता है, जब डेटाबेस टेबल क्वेरी में WHERE, JOIN, ORDER BY, या GROUP BY जैसे क्लॉज़ या एक्सप्रेशन में कई कॉलम मौजूद होते हैं।
Use Cases of Composite Indexes.
- Optimizing Multi-Column Queries – जब डेटाबेस टेबल में यूजर जनरेटेड क्वेरी ज्यादातर मल्टीप्ल टेबल कॉलम फील्ड के आधार पर फ़िल्टर, सॉर्ट, या ग्रुप की जाती हैं, तो यहाँ एक कम्पोजिट टेबल इंडेक्स उन सभी टेबल कॉलम को एनालाइज करके क्वेरी परफॉर्मेंस को इम्प्रूव कर फ़ास्ट करता है।
Example of Composite Indexes.
यहाँ हम सेल्स टेबल store_id, product_id, और sale_date कॉलम फील्ड वाली एक टेबल को एनालाइज करें। यहाँ डेटाबेस यूजर ज्यादातर store_id और product_id दोनों टेबल कॉलम फील्ड के आधार पर डाटा को फ़िल्टर करने के लिए टेबल को क्वेरी करते हैं.
CREATE INDEX indx_store_product
ON sales (store_id, product_id);
यहाँ कम्पोजिट इंडेक्स इस तरह की क्वेरी के बाद सेल्स टेबल परफॉर्मेंस को फ़ास्ट कर इम्प्रूव करता है.
SELECT * FROM sales
WHERE store_id = 789 AND product_id = 901;
यहाँ क्रिएट होने वाले एक कम्पोजिट इंडेक्स में टेबल कॉलम फील्ड का आर्डर एसेंशियल होता है। जहा कम्पोजिट इंडेक्स सबसे ज़्यादा तब इफेक्टिव होता है, जब डेटाबेस टेबल क्वेरी कॉलम को उसी आर्डर में फ़िल्टर या सॉर्ट करता है. जिस इंडेक्स आर्डर में वे इंडेक्स में प्रीव्यू होते हैं। जैसे, सेल्स टेबल में store_id, product_id पर क्रिएट एक कम्पोजिट इंडेक्स उन टेबल क्वेरीज़ के लिए ज्यादा इफेक्टिव होता है. जो पहले store_id और फिर product_id पर टेबल रिकॉर्ड को फ़िल्टर करती हैं। लेकिन यदि डेटाबेस यूजर ज्यादातर पहले product_id से टेबल कॉलम को फ़िल्टर करते हैं. तो यहाँ सेल्स टेबल में product_id पर एक अलग इंडेक्स क्रिएट करना यूज़फुल हो सकता है।
Full-Text Index in Database Management.
डेटाबेस टेबल में फुल-टेक्स्ट इंडेक्स एक स्पेशल टाइप का टेबल क्वेरी इंडेक्स होता है, जिसे स्पेशली टेक्स्ट-बेस्ड कॉलम फील्ड जैसे, TEXT, VARCHAR आदि डाटा टाइप में फुल-टेक्स्ट सर्च क्वेरी को मैनेज और कण्ट्रोल करने के लिए डेवलप किया गया है। फुल-टेक्स्ट बेस्ड इंडेक्स बड़े टेक्स्ट फ़ील्ड में वर्ड या सेन्टेन्सेस को फास्टली और एफ्फिसेंटली आर्डर में सर्च करने में हेल्प करता है।
फुल-टेक्स्ट बेस्ड इंडेक्स कुछ पर्टिकुलर डेटाबेस में यूज़ होता है, जो डेटाबेस इंडेक्स में फुल-टेक्स्ट सर्च फीचर्स और फ़ंक्शनैलिटी को डायरेक्ट सपोर्ट करते हैं. जैसे, MySQL, PostgreSQL, या SQL Server जैसे डेटाबेस मैनेजमेंट सॉफ्टवेयर है। फुल-टेक्स्ट बेस्ड इंडेक्स ज़्यादा एडवांस्ड सर्च मैकेनिज्म को फॉलो करते हैं. जैसे, पार्शियल मैच, स्टेमिंग, और सर्च रिजल्ट में रैंकिंग, आदि है।
Use case of a full-text index.
- Text search – जब डेटाबेस यूजर को बड़े टेक्स्ट डेटा में कुछ स्पेशल वर्ड्स, सेंटेंस, या यूनिक पैटर्न को मैन्युअल फाइंड करने की ज़रूरत होती है. जैसे कि किसी टेबल क्वेरी में वेबसाइट ब्लॉग, प्रोडक्ट डिटेल डिस्क्रिप्शन, कस्टमर रिव्यू, या अन्य प्रकार के डॉक्यूमेंटेशन आदि केस में।
Example of a full-text index.
MySQL डेटाबेस सॉफ्टवेयर में सेल्स टेबल में प्रोडक्ट्स टेबल के डिस्क्रिप्शन कॉलम पर फुल-टेक्स्ट इंडेक्स क्रिएट करने के लिए डेटाबेस यूजर इसे यूज़ कर सकते है.
CREATE FULLTEXT INDEX indx_description
ON product (description);
डेटाबेस टेबल में एक बार फुल-टेक्स्ट इंडेक्स क्रिएट हो जाने के बाद, डेटाबेस यूजर फुल-टेक्स्ट सर्च करने के लिए इसे यूज़ कर सकते है. जिसमे MATCH() और AGAINST() फ़ंक्शन का अप्लाई कर सकते हैं.
SELECT * FROM product
WHERE MATCH(description) AGAINST (‘+desktp +offer ‘ IN BOOLEAN MODE);
यह यूजर क्रिएटेड टेबल क्वेरी प्रोडक्ट टेबल में उन प्रोडक्ट्स को फाइंड करेगी। जिन प्रोडक्ट के डिस्क्रिप्शन में “desktop” और “offer” टेक्स्ट या वर्ड मौजूद हैं।
Boolean Search – डेटाबेस टेबल में फुल-टेक्स्ट इंडेक्स बूलियन सर्च फीचर्स या सिंटैक्स को डायरेक्ट सपोर्ट करते हैं, जिससे डेटाबेस यूजर अधिक एडवांस्ड टेबल क्वेरी सर्च कर सकते हैं. जैसे, सर्च क्वेरी में वर्ड को ऐड या रिमूव करना (+, -), क्वेरी में सेन्टेन्सेस या फ्रेज को फाइंड करना, या वाइल्डकार्ड (*) का स्पेशल यूज़ करना आदि है।
Conclusion on Types of Indexes (Unique, Composite, Full-text).
- Unique Index – एसक्यूएल डेटाबेस टेबल में यूनिक इंडेक्स फीचर्स यूनिकनेस को अप्लाई करता है, और टेबल में डेटा डुप्लीकेशन को अवॉइड करने के साथ डाटा इंटीग्रिटी को मेन्टेन करता है।
- Composite Index – यहाँ कम्पोजिट इंडेक्स एसक्यूएल डेटाबेस टेबल में मल्टीप्ल कॉलम वाली टेबल फील्ड क्वेरी को ऑप्टिमाइज़ कर इम्प्रूव करता है।
- Full-text Index – एसक्यूएल डेटाबेस टेबल में फुल टेक्स्ट इंडेक्स फ़ास्ट और एफ्फिसिएंट टेबल क्वेरी टेक्स्ट सर्च फीचर्स को इनेबल करता है।
- Clustered Index – यहाँ डेटाबेस टेबल में डेटा के फिजिकल स्टोरेज ऑर्डर को मैनेज करता है, और यह डाटा रेंज क्वेरी के लिए एफ्फिसिएंट टास्क है।
- Non-clustered Index – यह डेटाबेस टेबल में डेटा के फिजिकल ऑर्डर को मॉडिफाई किए बिना, फ़ास्ट टेबल डाटा लुकअप के लिए एक अतिरिक्त स्ट्रक्चर प्रोवाइड करता है।
- Bitmap Index – यह कम कार्डिनैलिटी वाले टेबल कॉलम फील्ड के लिए एफ्फिसिएंट मेथड है, जहा मल्टीप्ल कुछ इंडिविजुअल कॉलम वैल्यू होती हैं।
- Spatial Index – यह डेटाबेस टेबल में जियोस्पेशियल डेटा के लिए टेबल क्वेरी को ऑप्टिमाइज़ करता है।
- Reverse Key Index – यह डेटाबेस टेबल में इंडेक्स वैल्यू को ज़्यादा इक्वल आर्डर में डिवाइड कर ऑटो-इंक्रीमेंट कॉलम वाली टेबल वैल्यू के लिए परफॉर्मेंस को ऑप्टिमाइज़ करता है।
