MySQL में INDEX बनाम KEY का उपयोग करने में क्या अंतर है?


191

मुझे पता है कि निम्नलिखित कोड में INDEX का उपयोग कैसे किया जाता है। और मुझे पता है कि विदेशी कुंजी और प्राथमिक कुंजी का उपयोग कैसे करें ।

CREATE TABLE tasks ( 
  task_id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
  parent_id INT UNSIGNED NOT NULL DEFAULT 0, 
  task VARCHAR(100) NOT NULL, 
  date_added TIMESTAMP NOT NULL, 
  date_completed TIMESTAMP, 
  PRIMARY KEY (task_id), 
  INDEX parent (parent_id), 
  ....


हालाँकि मुझे INDEX के बजाय KEY का उपयोग करके एक कोड मिला है।

...
KEY order_date (order_date) 
...


मुझे आधिकारिक MySQL पेज पर कोई स्पष्टीकरण नहीं मिला। क्या कोई मुझे बता सकता है कि KEY और INDEX में क्या अंतर है?

एकमात्र अंतर मुझे यह दिखाई देता है कि जब मैं उपयोग करता KEY ...हूं, तो मुझे शब्द को दोहराने की आवश्यकता होती है, उदाहरण के लिए
KEY order_date (order_date)

जवाबों:


264

कोई अंतर नहीं है। वे पर्यायवाची हैं।

से मैनुअल प्रविष्टि :CREATE TABLE

KEYसामान्य रूप से एक पर्यायवाची है INDEX। मुख्य विशेषता PRIMARY KEYको KEYकॉलम की परिभाषा में दिए गए अनुसार ही निर्दिष्ट किया जा सकता है । यह अन्य डेटाबेस सिस्टम के साथ संगतता के लिए लागू किया गया था।


1
SQLYog के नवीनतम संस्करण में तालिका जानकारी को देखने पर यह दिखाता है KEY keyname (column_name)कि मैंने तालिका कब बनाई थी INDEX keyname (column_name)। तथ्य यह है कि यह एक पर्याय है यह पूरी तरह से समझाता है।
क्रैम्पिको

14

यहाँ "अंतर" के बारे में एक अच्छा वर्णन है :

"MySQL के लिए हर कुंजी को अनुक्रमित करने की आवश्यकता होती है, यह प्रदर्शन को बेहतर बनाने के लिए MySQL के लिए विशिष्ट कार्यान्वयन विवरण है।"


2
प्रश्न SQL पहचानकर्ता कुंजी और MySQL में INDEX के उपयोग के बारे में है। कुंजी और सूचकांक के बीच अंतर नहीं।
जोश जे

मैंने एक खोज इंजन के साथ अंतर की खोज की और यह पहला परिणाम था। मेरी राय में एक अतिरिक्त प्रश्न खोलने की आवश्यकता नहीं है। लेकिन अगर आप चाहते हैं तो ऐसा करने के लिए स्वतंत्र महसूस करें।
स्टीफन

5

इसे INDEX'क्रिएट टेबल' डॉक्स के लिए एक पर्याय के रूप में उल्लेख किया गया है : MySQL 5.5 संदर्भ मैनुअल :: 13 SQL स्टेटमेंट सिंटैक्स :: 13.1 डेटा डेफिनिशन स्टेटमेंट्स :: 13.1.17 टेबल टेबल सिंटैक्स

नोस ने पहले ही अनुभाग का हवाला दिया और 5.1 के लिए मदद को जोड़ा।

जैसे आपके लिए PRIMARY KEYएक प्राथमिक कुंजी और एक इंडेक्स KEYबनाता है , केवल एक इंडेक्स बनाता है।


3

कीज़ वे विशेष क्षेत्र हैं जो किसी तालिका के भीतर बहुत विशिष्ट भूमिकाएँ निभाते हैं, और कुंजी का प्रकार तालिका के भीतर अपने उद्देश्य को निर्धारित करता है।

एक इंडेक्स एक संरचना है जिसे आरडीबीएमएस (डेटाबेस मैनेजमेंट सिस्टम) डाटा प्रोसेसिंग में सुधार के लिए प्रदान करता है। एक सूचकांक का तार्किक डेटाबेस संरचना से कोई लेना-देना नहीं है।

इसलिए...

कुंजी तार्किक संरचनाएं हैं जिनका उपयोग आप तालिका के भीतर रिकॉर्ड की पहचान करने के लिए करते हैं और अनुक्रमित भौतिक संरचनाएं हैं जिनका उपयोग आप डेटा प्रोसेसिंग को अनुकूलित करने के लिए करते हैं।

स्रोत: मेरे नश्वर के लिए डेटाबेस डिजाइन

लेखक: माइकल हर्नांडेज़


1
प्रश्न SQL पहचानकर्ता कुंजी और MySQL में INDEX के उपयोग के बारे में है। कुंजी और सूचकांक के बीच अंतर नहीं।
जोश जे

-1

एक कुंजी स्तंभों या अभिव्यक्तियों का एक समूह है, जिस पर हम एक सूचकांक बनाते हैं।

  1. जबकि एक सूचकांक एक संरचना है जो डेटाबेस में संग्रहीत है, चाबियाँ सख्ती से एक तार्किक अवधारणा हैं।

  2. इंडेक्स तेजी से एक रिकॉर्ड तक पहुंचने में हमारी मदद करता है, जबकि चाबियाँ सिर्फ रिकॉर्ड को विशिष्ट रूप से पहचानती हैं।

  3. हर टेबल में एक कुंजी होगी, लेकिन एक इंडेक्स होना अनिवार्य नहीं है।

Https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT721 पर देखें


3
प्रश्न SQL पहचानकर्ता कुंजी और MySQL में INDEX के उपयोग के बारे में है। कुंजी और सूचकांक के बीच अंतर नहीं।
जोश जे

1
@ जोश जे भले ही मूल प्रेरणा पहचानकर्ताओं के बारे में पूछना था, एक कुंजी के बारे में अंतर की खोज करना और एक खोज इंजन के साथ एक सूचकांक इस विषय की उपज देता है। यह अधिक विशिष्ट होने के लिए प्रश्न के शीर्षक को बेहतर बनाने के लिए समझ में आ सकता है। दूसरी ओर, mysql में एक कुंजी और एक सूचकांक के बीच अंतर के बारे में एक प्रश्न लिखना संभवतः एक डुप्लिकेट के रूप में चिह्नित किया जाएगा। => मुझे ऐसे पूरक उत्तर बहुत उपयोगी लगे। "वास्तविक" उत्तर को सर्वोच्च अंक मिलेगा, वैसे भी। इसलिए मुझे पूरक उत्तरों पर नकारात्मक वोटों का कोई कारण नहीं दिखता है।
स्टेफन

मैंने इसे स्पष्ट करने के लिए INDEX और KEY को प्रश्न में बड़ा किया है।
रीइन्टीरियरपोस्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.