2011-08-05 11 views
6

मेरे पास एक विशाल डेटा सेट है। संरचना इस तरह दिखता है:MySQL में एकाधिक फ़ील्ड इंडेक्स एक अच्छा विकल्प है?

K_Field1, K_Field2, K_Field3, K_Field4, D_Field5, D_Field6, D_Field7, D_field8 

समस्या यह है कि केवल पहले 4 क्षेत्र (K_Field1,K_Field2,K_Field3,K_Field4) एक साथ विशिष्ट एक पंक्ति की पहचान है। मैंने अपने खेतों के रूप में इन क्षेत्रों का उपयोग करके एक टेबल बनाया है।

मान लें कि उस संरचना का उपयोग करके तालिका में मेरे पास 1 मिलियन पंक्तियां हैं। अगर मैं एक नया रिकॉर्ड आयात करता हूं, तो मुझे यह तय करना होगा कि यह पहले से ही डेटाबेस में है या नहीं। यदि ऐसा है, तो मुझे इसे अद्यतन करना होगा, यदि नहीं, तो मुझे एक नई पंक्ति डालने की आवश्यकता है।

ऐसा करने के लिए, मुझे पहले 4 कॉलम पर एक से अधिक फ़ील्ड इंडेक्स डालना होगा, जो है - मुझे डर है - सबसे अच्छा समाधान नहीं। क्या उस डेटा को स्टोर और खोजने के लिए कोई बेहतर डेटाबेस संरचना है, या मुझे चार फ़ील्ड इंडेक्स के साथ रहना है?

मैं MySQL

+2

आपको क्यों लगता है कि मल्टी-कॉलम इंडेक्स रखने का बुरा विचार है? यह पूरी तरह से साईं और आपका एकमात्र समाधान है। – nobody

+0

मैं उम्मीद कर रहा था कि मैं किसी भी तरह से डेटा को कई तालिकाओं में विभाजित कर सकता हूं, जिससे संरचना अधिक प्रभावशाली हो जाती है, लेकिन ऐसा लगता है कि मैं गलत था। आपकी टिप्पणी के लिये धन्यवाद! – mimrock

उत्तर

5

उपयोग कर रहा हूँ पहले 4 स्तंभ पर एक सूचकांक बनाने के साथ कुछ भी गलत नहीं सच है कि आप करना चाहिए में, नहीं है:

create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4); 

क्योंकि कि अपनी स्थिति की वास्तविकता है।

यह भी "सही" समाधान है।

संबंधित मुद्दे