Creating Indexes sql In Hindi
एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम मे इंडेक्स डेटाबेस टेबल डाटा क्वेरी की परफॉर्मेंस को ऑप्टिमाइज़ इम्प्रूव या फ़ास्ट करने के लिए एक पॉपुलर फीचर्स हैं, यह सेकंडरी स्टोरेज डेटाबेस ऑप्टिमाइजेशन में स्टोर्ड टेबल डाटा को प्रॉपर आर्डर में अरेंज या मैनेज कर सीक्वेंस में स्टोर कर रीड और राइट डाटा ऑपरेशन्स के लिए हेल्पफुल प्रोसेस है। डेटाबेस टेबल डाटा का इंडेक्सिंग करने से डाटा क्वेरी स्टोरेज और रिट्रीवल प्रोसेस या परफॉर्मेंस फ़ास्ट हो जाती है. इंडेक्सिंग प्रोसेस से डेटाबेस में कम्पलीट टेबल को स्कैन करने के बजाय टेबल रोज़ को इमीडियेट फाइंड कर पाती है।

एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम मे डेटाबेस यूजर CREATE INDEX कमांड या स्टेटमेंट को अप्लाई करके एक नया डेटाबेस टेबल इंडेक्स क्रिएट कर सकते हैं।
Syntax for index creation in SQL databases.
CREATE INDEX index_name
ON table_name (column1, column2, …);
Elements of CREATE INDEX.
- index_name – यह नई क्रिएट इंडेक्स का वह नाम है, जो डेटाबेस यूजर नई इंडेक्स को प्रोवाइड करते हैं। यहाँ नई इंडेक्स को एक मीनिंगफुल नाम प्रोवाइड करना चाहिए, जिसमें ज्यादातर टेबल का नाम और टेबल कॉलम डिफाइन होते हैं।
- table_name – यह इंडेक्सिंग प्रोसेस में उस टेबल का नाम है, जिसके आधार पर पे नया इंडेक्स क्रिएट किया जा रहा है।
- (column1, column2, …) – यह डेटाबेस टेबल में नई इंडेक्स किए जाने वाले टेबल कॉलम है। डेटाबेस यूजर यहाँ जरूरत के अनुसार एक या कई कॉलम को इंडेक्स कर मैनेज कर सकते हैं।
Example of a simple index in an SQL database.
यहाँ माना की डेटाबेस यूजर के पास एक एम्प्लॉइ नाम से एक डेटाबेस टेबल मौजूद है, और यहाँ यूजर ज्यादातर ऐसी टेबल क्वेरी को रन करते हैं. जो employee_id के आधार पर टेबल रिकॉर्ड डाटा को फ़िल्टर कर डिस्प्ले करती हैं। यहाँ इन डेटाबेस क्वेरी को फ़ास्ट करने के लिए यूजर employee_id कॉलम पर एक इंडेक्स क्रिएट कर सकते हैं.
CREATE INDEX indx_employee_id
ON employee (employee_id);
In this simple index example.
- यहाँ indx_employee_id एक यूजर डिफाइन इंडेक्स का नाम है।
- जहा इसे नई इंडेक्स एम्प्लॉइ टेबल के employee_id कॉलम पर क्रिएट किया गया है।
यहाँ डेटाबेस यूजर इस तरह इसे क्वेरी कर सकते हैं.
SELECT * FROM employee WHERE employee_id = 101;
यहाँ यह क्वेरी डेटाबेस पूरी डेटाबेस टेबल को स्कैन करने के बदले में, इंडेक्स को यूज़ करके employee_id = 101 वाली टेबल रो को इमीडियेट फाइंड कर सकता है।
Example of creating a multi-column index in a database table.
- यदि डेटाबेस यूजर को मल्टीप्ल टेबल कॉलम को यूज़ करके एक क्वेरी जनरेट करनी हैं, तो यूजर यहाँ एक से ज़्यादा टेबल कॉलम पर एक नया टेबल कॉलम इंडेक्स क्रिएट कर सकते हैं। जहा इसे कम्पोजिट इंडेक्स या मल्टी-कॉलम इंडेक्स के रूप में जाना जाता है।
- जैसे, यदि डेटाबेस यूजर ज्यादातर एम्प्लॉइज़ टेबल में f_name और l_name कॉलम के कॉम्बिनेशन पर नई क्वेरी को रन करते हैं.
CREATE INDEX indx_name
ON employee (f_name, l_name);
Here, this query statement.
SELECT * FROM employee
WHERE f_name = ‘Siddhi’ AND l_name = ‘Deora’;
यहाँ एम्प्लॉई टेबल में कॉलम इंडेक्स क्रिएट करने से डेटाबेस यूजर इंडेक्स को यूज़ करके दोनों टेबल कॉलम के आधार पर मैचिंग टेबल रोज़ को इमीडियेट फाइंड कर सकता है।
Unique Index Example in SQL Database.
डेटाबेस टेबल में नई क्रिएट एक यूनिक इंडेक्स यह फिक्स करने में हेल्प करता है कि इंडेक्स किए गए डेटाबेस टेबल कॉलम में सभी वैल्यू यूनिक और एक ही हों। यूनिक इंडेक्स का यूज़ ज्यादातर टेबल डेटा इंटीग्रिटी को अप्लाई करने में किया जाता है। जैसे, यहाँ एम्प्लॉई टेबल में हर एम्प्लॉई का ई-मेल या एम्प्लॉई आईडी कॉलम यूनिक होना चाहिए, तो यहाँ डेटाबेस यूजर एक यूनिक इंडेक्स क्रिएट और मैनेज कर सकते हैं.
CREATE UNIQUE INDEX indx_e-mail
ON employee (e-mail);
यहाँ यह एम्प्लॉई टेबल में डुप्लीकेट ईमेल को ऐड करने के प्रोसेस ब्लॉक हो जाएगी, क्योंकि यहाँ इंडेक्स में ईमेल कॉलम में यूनिकनेस अप्लाई हो जाती है।
Example of indexing with CREATE INDEX and WHERE (Partial Index).
एसक्यूएल डेटाबेस मैनेजमेंट में कुछ डेटाबेस सिस्टम पार्शियल इंडेक्स कांसेप्ट फीचर्स को सपोर्ट करते हैं, जो डेटाबेस टेबल में केवल उन टेबल रोज को इंडेक्स करता है. जो एक पर्टिकुलर कंडीशन को कम्पलीट करता हैं। यह डेटाबेस यूजर के लिए तब यूज़फुल हो सकता है, जब डेटाबेस यूजर के पास एक बड़ी डेटाबेस टेबल मौजूद हो. लेकिन यहाँ यूजर को सिर्फ कुछ टेबल रोज के एक विशिष्ट सबसेट के लिए टेबल क्वेरी को ऑप्टिमाइज़ या मैनेज करने की जरूरत हो।
जैसे, यदि डेटाबेस यूजर ज्यादातर एक्टिव वर्किंग एम्प्लॉई (जैसे, जहां स्टेटस कॉलम ‘active’ विज़िबल है) के लिए क्वेरी क्रिएट करते हैं. तो यहाँ डेटाबेस यूजर इस तरह एक पार्शियल इंडेक्स क्वेरी क्रिएट कर सकते हैं.
CREATE INDEX indx_active_employee
ON employee (employee_id)
WHERE status = ‘active’;
यहाँ इस नई क्रिएट इंडेक्स में केवल वे टेबल रोज ही इन्क्लुड होंगी, जहाँ टेबल कॉलम स्टेटस ‘active’ डिस्प्ले है, जिससे यह उन स्पेसिफिक टेबल क्वेरी के लिए अधिक स्पेस-एफ्फिसिएंट और फ़ास्ट हो जाएगा।
Example of an index for full-text search in an SQL database.
एसक्यूएल डेटाबेस मैनेजमेंट में कई डेटाबेस सॉफ्टवेयर, जैसे MySQL, PostgreSQL, या SQL Server, टेक्स्ट-बेस्ड टेबल कॉलम में एफ्फिसिएंट टेबल टेक्स्ट सर्चिंग के लिए फुल-टेक्स्ट इंडेक्स फीचर्स को सपोर्ट करता हैं। जैसे, MySQL डेटाबेस सॉफ्टवेयर में डेटाबेस यूजर टेक्स्ट या varchar टेबल कॉलम पर फुल-टेक्स्ट इंडेक्स क्रिएट कर सकते हैं.
CREATE FULLTEXT INDEX indx_fulltext_description
ON product (description);
यहाँ डेटाबेस यूजर इंडेक्स में MATCH और AGAINST जैसे कीवर्ड को अप्लाई करके इस तरह की डेटाबेस टेबल क्वेरी के लिए फ़ास्ट टेक्स्ट सर्च को इनेबल कर सकते है.
SELECT * FROM product
WHERE MATCH(description) AGAINST (‘Macbook’);
यहाँ फुल-टेक्स्ट इंडेक्स बड़े टेक्स्ट टेबल फ़ील्ड के अंदर कुछ स्पेसिफिक वर्ड या सेन्टेन्सेस को सर्च करने वाली सर्च को इम्प्रूव करता है।
Example of an index on a foreign key column in a database table.
- डेटाबेस टेबल में रेफरेंशियल इंटीग्रिटी को इनक्रीस करने और टेबल क्वेरी की परफॉर्मेंस को इम्प्रूव करने के लिए फॉरेन की टेबल कॉलम पर ज्यादातर आटोमेटिक आर्डर में इंडेक्स क्रिएट किए जाते हैं। जैसा की, डेटाबेस यूजर फॉरेन की कॉलम पर क्लियर आर्डर में इंडेक्स भी क्रिएट कर सकते हैं।
- जैसे की, यहाँ एम्प्लॉई टेबल में department टेबल को रेफर या इंडीकेट करने वाला department_id नाम का फॉरेन की टेबल कॉलम फील्ड है.
CREATE INDEX indx_department_id
ON employee (department_id);
यहाँ एम्प्लॉई डेटाबेस टेबल में इंडेक्स इस तरह की क्वेरी को फ़ास्ट या इम्प्रूव करता है.
SELECT * FROM employee
WHERE department_id = 102;
Creating indexes in SQL Server software: Clustered vs. Non-Clustered Indexes.
- SQL Server – सॉफ्टवेयर में मुख्य रूप से दो प्रकार के इंडेक्स बिहेवियर होते हैं.
- Clustered Index – यह डेटाबेस टेबल में इंडेक्स टेबल की डेटा रोज को इंडेक्स किए गए टेबल कॉलम फील्ड के आधार पर डाटा को सॉर्टिंग और सेकेंडरी स्टोरेज लोकेशन में स्टोर करता है। जहा प्रत्येक डेटाबेस टेबल में केवल एक क्लस्टर्ड इंडेक्स क्रिएट हो सकते है।
- Non-clustered index – यह डेटाबेस टेबल में इंडेक्स डेटा रोज से एक अलग स्ट्रक्चर क्रिएट करता है, और इसमें रियल टाइम टेबल डेटा के पॉइंटर होते हैं। जहा एक डेटाबेस टेबल में जरूरत के अनुसार कई नॉन-क्लस्टर्ड टेबल इंडेक्स क्रिएट हो सकते हैं।
Example of a clustered index in an SQL database table.
- यहाँ एम्प्लॉई टेबल में employee_id टेबल कॉलम फील्ड पर क्लस्टर्ड इंडेक्स क्रिएट करने के लिए इस कॉलम फील्ड को प्राइमरी की की तरह ट्रीट करते है.
CREATE CLUSTERED INDEX indx_employee_id
ON employee (employee_id);
Example of a non-clustered index in an SQL database table.
यहाँ एम्प्लॉई टेबल में l_name टेबल कॉलम फील्ड पर नॉन-क्लस्टर्ड इंडेक्स क्रिएट करने के लिए.
CREATE NONCLUSTERED INDEX indx_l_name
ON employee (l_name);
Conclusion on Creating Indexes in SQL.
एसक्यूएल डेटाबेस टेबल में इंडेक्स क्रिएट करना डेटाबेस टेबल क्वेरी ऑप्टिमाइज़ेशन में एक बेस्ट प्रैक्टिस या मेथड है, क्योंकि यह डेटाबेस यूजर को टेबल क्वेरी में फ़ास्ट इनफार्मेशन सर्चिंग, टेबल रिकॉर्ड सॉर्टिंग और मल्टीप्ल टेबल जॉइनिंग जैसे रीड ऑपरेशन को इमीडियेट परफॉर्म कर सकते है। जैसे की, डेटाबेस टेबल इंडेक्स के क्रिएशन प्रोसेस के साथ कुछ साइड इफ़ेक्ट भी होते हैं. जैसे हर इंडेक्स डेटाबेस टेबल क्वेरी के लिए अतिरिक्त सेकेंडरी स्टोरेज की जरूरत और स्लो डाटा राइट ऑपरेशन आदि है। बेस्ट या बेहतर डेटाबेस क्वेरी परफॉर्मेंस के लिए, ज्यादातर टेबल क्वेरी कॉलम पर सेलेक्टिव आर्डर में इंडेक्स क्रिएट करना और उन्हें रेगुलर मॉनिटर और मेंटेन करना ज़रूरी है।
