में कॉलम द्वारा MySQL तालिका को विभाजित करने के लिए कैसे उत्पादों की एक साधारण तालिका है। प्रत्येक उत्पाद की अपनी अद्वितीय आईडी और श्रेणी होती है। उपयोगकर्ता अक्सर श्रेणी के आधार पर खोज करते हैं, इसलिए मैं श्रेणी के अनुसार उत्पादों को विभाजित करना चाहता हूं। प्रत्येक वर्ग एक विभाजन में उदा।अद्वितीय अनुक्रमणिका
मैं इसे कैसे कर सकता हूं? निश्चित रूप से मेरे पास मेरे आईडी कॉलम पर प्राथमिक कुंजी है और मेरी आईडी अद्वितीय है। प्रत्येक श्रेणी में अद्वितीय नहीं है।
हालांकि विभाजन में यह सीमा है कि "तालिका पर प्रत्येक अद्वितीय कुंजी को तालिका की विभाजन अभिव्यक्ति में प्रत्येक कॉलम का उपयोग करना चाहिए"।
ठीक है, क्या यह विभाजन को थोड़ा बेकार नहीं बनाता है? या क्या मैं कुछ न कुछ भूल रहा हूं? मुझे क्या करना चाहिए?
http://dev.mysql.com/doc/refman/5.1/en/partitioning-limitations-partitioning-keys-unique-keys.html
अवश्य, लेकिन आईडी तो अद्वितीय लेकिन श्रेणी में केवल अद्वितीय नहीं होगा, है जो मैं नहीं चाहता। फिर से काम करना बंद कर देगा। यदि उत्पाद की श्रेणी बदल जाएगी तो उत्पाद डुप्लिकेट किया जाएगा। लेकिन वैसे भी, आपके उत्तर के लिए धन्यवाद। –
नहीं। प्राथमिक कुंजी में कोई फ़ील्ड जोड़ना इसे गैर-अनन्य नहीं बना सकता है, जैसा कि मैंने अपने उत्तर में लिखा है। आप कोशिश क्यों नहीं करते और देखते हैं कि यह काम करता है? मैंने दिन में विभाजन के लिए एक बड़ी लॉग तालिका (2 और 5 मिलियन रिकॉर्ड के बीच) पर विभाजन का उपयोग किया है: यह दिन में बहुत तेजी से 'चयन' की अनुमति देता है, और किसी विशेष दिन के लिए सभी रिकॉर्डों का तेज़ी से हटाना (केवल विभाजन को छोड़कर))। – Jocelyn
ओह नहीं, मुझे पता है कि प्राथमिक कुंजी अभी भी अद्वितीय होगी। लेकिन आईडी जो अब केवल कुंजी का हिस्सा होगी, श्रेणी कॉलम में अलग-अलग मूल्य के रूप में अनूठी होने से रोक सकती है, हालांकि यह अद्वितीय होगा हालांकि आईडी समान होगी। लेकिन ऐसा लगता है कि MySQL बस इस तरह काम करता है (हालांकि यह ज्यादा समझ में नहीं आता है) और मुझे इसके साथ रहना होगा। वैसे भी, आपके प्रयास के लिए धन्यवाद। –