मैं एसक्यूएल सर्वर 2008 में एक डेटाबेस बनाने रहा हूँ,डेटाबेस: प्राथमिक कुंजी, क्लस्टर किया या Nonclustered
CREATE TABLE Users
(
U_Id INT NOT NULL
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Email VARCHAR(200)
Password VARCHAR(50)
)
मैं U_Id प्राथमिक कुंजी बनाना चाहते हैं। मैं पूछने के लिए
CONSTRAINT pk_UserID PRIMARY KEY (U_Id)
इस
CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)
और इस
CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)
के बीच अंतर जब प्रत्येक उपयोग करने के लिए क्या है चाहते हैं?
मैंने कुछ लेख पढ़ा लेकिन यह अभी भी मेरे लिए अस्पष्ट है। क्या कोई मुझे त्वरित स्पष्टीकरण दे सकता है?
बस ध्यान रखें कि आपके द्वारा बनाए गए गैर-क्लस्टर किए गए इंडेक्स में हमेशा क्लस्टर-इंडेक्स में डेटा शामिल होगा (क्योंकि तालिका में वास्तविक डेटा पंक्ति कैसे मिलती है)। [माइक्रोसॉफ्ट डॉक्स] (http://msdn.microsoft.com/en-us/library/ms177484.aspx) तो ऐसा नहीं लगता कि आप एक बड़े/विस्तृत इंडेक्स को क्लस्टर्ड-इंडेक्स बनाकर स्थान बचाएंगे जब तक कि आप टेबल पर कोई अन्य अनुक्रमणिका नहीं है। – Granger
प्राथमिक कुंजी एक पंक्ति का पहचानकर्ता है। यह अद्वितीय होना चाहिए और शून्य नहीं होना चाहिए। क्लस्टरर्ड इंडेक्स एसक्यूएल को डिस्क पर डेटा स्टोर करने का तरीका बताता है। इस सूचकांक द्वारा निर्दिष्ट वास्तविक डेटा पंक्तियों को क्रम में संग्रहीत किया जाता है। चूंकि इसमें डिस्क पर डेटा संग्रहीत किया जाता है, इस पर डेटा भी शामिल है, क्लस्टर इंडेक्स कुंजी प्रत्येक इंडेक्स में संग्रहीत होती है। लगभग सभी मामलों में यह वही होना सर्वोत्तम है। और प्राथमिक कुंजी को पहचानकर्ता होने के लिए लगभग हमेशा सर्वोत्तम होता है ताकि डेटा को क्रमशः डिस्क पर संग्रहीत किया जा सके। – brianfeucht