मैं डेटाबेस कॉलम को कैसे इंडेक्स करूं?

उम्मीद है कि, मैं प्रत्येक डेटाबेस सर्वर के लिए जवाब प्राप्त कर सकते हैं।

For an outline of how indexing works check out: How does database indexing work?

0
जोड़ा संपादित
विचारों: 2
एसओ के लक्ष्यित लक्ष्यों में से एक Google खोज में पहले दिखाना है। अक्सर बार, एक SO जवाब स्वयं दस्तावेज़ों से बेहतर होता है। क्या सभी उत्तरों को इकट्ठा करने के लिए समुदाय विकी के रूप में यहां एक उत्तर स्थापित करने के लिए मूल्यवान नहीं होगा?
जोड़ा लेखक Ethan Reesor, स्रोत
ऐसा लगता है कि आपके द्वारा उपयोग किए जा रहे डेटाबेस सर्वर के दस्तावेज़ों द्वारा अच्छी तरह से उत्तर दिया जाएगा। ओरेकल के लिए: [ download.oracle। कॉम / docs / सीडी / B28359_01 / server.111 / b28310 / & hellip;
जोड़ा लेखक WW., स्रोत
जब मैंने ओरेकल के उपर्युक्त लिंक पर क्लिक किया तो मुझे सही पृष्ठ नहीं मिला। सही लिंक पोस्ट करना: docs.oracle.com/cd/B28359_01 /server.111/b28310/indexes003.ht‌ मीटर
जोड़ा लेखक Saurabh Patil, स्रोत

7 उत्तर

एसक्यूएल सर्वर 2005 आपको एक कवर इंडेक्स निर्दिष्ट करने की क्षमता देता है। यह एक सूचकांक है जिसमें पत्ते के स्तर पर अन्य कॉलम से डेटा शामिल है, इसलिए आपको इंडेक्स कुंजी में शामिल कॉलम प्राप्त करने के लिए तालिका में वापस जाने की आवश्यकता नहीं है।

my_table (my_col1 asc, my_col2 asc) पर nonclustered अनुक्रमणिका my_idx बनाएं (my_col3);

यह एक क्वेरी के लिए अमूल्य है जिसमें मेरी सूची में my_col3 है, और my_col1 और my_col2 जहां खंड में है।

0
जोड़ा

1।

 CREATE INDEX name_index ON Employee (Employee_Name)
  1. On a multi column

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    
0
जोड़ा

SQL सर्वर में, आप निम्न कार्य कर सकते हैं: ( MSDN लिंक पूर्ण करने के लिए विकल्पों की सूची।)

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON  ( column [ ASC | DESC ] [ ,...n ] ) 
    [ INCLUDE ( column_name [ ,...n ] ) ]
    [ WHERE  ] 

(कुछ और उन्नत विकल्पों को अनदेखा कर रहा है ...)

प्रत्येक इंडेक्स का नाम अद्वितीय डेटाबेस चौड़ा होना चाहिए।

सभी अनुक्रमणिका में एकाधिक कॉलम हो सकते हैं, और प्रत्येक कॉलम को आप जो भी ऑर्डर चाहते हैं उसे ऑर्डर किया जा सकता है।

क्लस्टर्ड इंडेक्स अद्वितीय हैं - प्रति तालिका एक। उनके पास शामिल डी कॉलम नहीं हो सकते हैं।

Nonclustered इंडेक्स अद्वितीय नहीं हैं, और प्रति टेबल 999 तक हो सकता है। वे कॉलम, और जहां खंड शामिल हो सकते हैं।

0
जोड़ा

निम्नलिखित SQL92 मानक है इसलिए SQL का उपयोग करने वाले अधिकांश RDMBS द्वारा समर्थित होना चाहिए:

CREATE INDEX [index name] ON [table name] ( [column name] )
0
जोड़ा
अधिकांश प्रणालियों में, इसका उपयोग एकल कॉलम के बजाय कॉलम नामों की अल्पविराम से अलग सूची जोड़कर, एकाधिक कॉलम के साथ भी किया जा सकता है।
जोड़ा लेखक David Manheim, स्रोत

पायथन pytables के लिए, अनुक्रमणिका के नाम नहीं हैं और वे एकल कॉलम के लिए बाध्य हैं:

tables.columns.column_name.createIndex()
0
जोड़ा

सामग्री के बाद इंडेक्स बनाने के लिए इस्तेमाल किया जा सकता है:

  1. Creates an index on a table. Duplicate values are allowed:

    CREATE INDEX index_name ON table_name (column_name)

  2. Creates a unique index on a table. Duplicate values are not allowed:

    CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. Clustered Index

    CREATE CLUSTERED INDEX CL_ID ON SALES(ID);

  4. Non-clustered index

    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);

http://www.codeproject.com/Articles/190263/ देखें विवरण के लिए इंडेक्स-इन-एमएस-एसक्यूएल-सर्वर

0
जोड़ा

आपको केवल उन स्तंभों को अनुक्रमित करना चाहिए जिन पर आप लगातार खोज / क्वेरी करते हैं।

मान लें कि आपके पास छात्र नामक एक टेबल है जहां आप छात्र आईडी, नाम, पाठ्यक्रम, ग्रेड इत्यादि स्टोर करते हैं और आपको विशिष्ट छात्रों के बारे में जानकारी के लिए अक्सर छात्र आईडी कॉलम की आवश्यकता होती है।

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

आपको उस कॉलम पर एक इंडेक्स बनाना चाहिए, क्योंकि इससे खोज प्रक्रिया तेज हो जाएगी। आप निम्न कोड के साथ मौजूदा कॉलम पर एक इंडेक्स बना सकते हैं:

CREATE INDEX IndexStudentID

ON Students (StudentID)

इंडेक्स स्टूडेंट आईडी नाम कुछ भी हो सकता है, जो कुछ आपके लिए समझ में आता है।

हालांकि, एक इंडेक्स बनाना आपके डेटाबेस में कुछ ओवरहेड जोड़ देगा। ऐसे कई टूल हैं जो मदद कर सकते हैं, उदाहरण के लिए, मैं SQLDbm का उपयोग कर रहा हूं क्योंकि यह मुझे सबसे अच्छा लगा।

0
जोड़ा
कार्डिनलिटी के बारे में या तो मत भूलना। schema.table से INDEX दिखाएं; और कृपया उन्हें बनाने के बाद हमेशा अपने सूचकांक का परीक्षण करें। इसके अलावा, मल्टी-कॉलम इंडेक्स के लिए कार्डिनालिटी (कम से कम) और (उच्च से कम) का प्रयास करें। कार्डिनलिटी पर ध्यान देना विशाल डेटाबेस पर एक टन बचा सकता है। - en.wikipedia.org/wiki/Cardinality_(SQL_statements)
जोड़ा लेखक JayRizzo, स्रोत