2012-05-30 12 views
6

शाम,30 लाख पंक्तियां

मैं एक चकनाचूर, 15 वर्षीय से डेटा आयात की लंबी प्रक्रिया के माध्यम से जा रहा हूँ, केवल पढ़ने के लिए MySQL में डेटा स्वरूप इसे से कुछ छोटे सांख्यिकीय तालिका के निर्माण के लिए ।

सबसे बड़ी तालिका जिसे मैंने पहले बनाया है (मुझे लगता है) 32 मिलियन पंक्तियां थीं, लेकिन मुझे उम्मीद नहीं थी कि यह इतना बड़ा हो और वास्तव में MySQL को दबा रहा हो।

तालिका इस तरह दिखेगा:

surname name year rel bco bplace rco rplace 
Jones  David 1812 head Lond Soho  Shop Shewsbury 

तो, छोटे ints और varchars।

क्या कोई भी इस बारे में सलाह दे सकता है कि इसे यथासंभव जल्दी से कैसे करें? किसी भी कॉल्मन्स पर इंडेक्स मदद करेगा, या वे सिर्फ प्रश्नों को धीमा कर देंगे।

प्रत्येक कॉलम में अधिकांश डेटा को कई बार डुप्लिकेट किया जाएगा। कुछ क्षेत्रों में लगभग 100 विभिन्न संभावित मूल्यों से अधिक नहीं है।

मुख्य कॉलम मैं तालिका पर पूछताछ कर रहा हूं: उपनाम, नाम, आरको, प्रतिस्थापन।

+2

इंडेक्स डेटा पुनर्प्राप्ति को तेज करते हैं और डेटा सम्मिलन को धीमा करते हैं। आम तौर पर, वे एक बहुत अच्छी बात है: मैं उन सभी कॉलमों के लिए उन्हें बनाने का सुझाव दूंगा जिन पर आप तालिका से पूछताछ कर सकते हैं। – eggyal

+3

आधुनिक आरडीबीएमएस के लिए 30 मिलियन पंक्तियां बहुत अधिक नहीं हैं। जब तक आप बिना किसी इंडेक्स के पूर्ण टेबल स्कैन कर रहे हों, बेशक। –

+0

आपके लिए टिप्पणी के लिए धन्यवाद। मुझे लगता है कि मेरे 32 मिलियन के साथ समस्या थी। पंक्ति तालिका पंक्तियों को डालने से दुर्घटनाएं हो रही थीं। –

उत्तर

5

INDEX एक कॉलम पर खोज को तेज करता है। INDEX कॉलम का प्रयास करें जिन्हें आप अक्सर पूछताछ में उपयोग करेंगे। जैसा कि आपने बताया है कि आप surname, name, rco, rplace कॉलम का उपयोग करेंगे। मैं सुझाव दूंगा कि आप उन्हें अनुक्रमित करें।

चूंकि तालिका में 32 मिलियन रिकॉर्ड हैं, इसलिए अनुक्रमण में कुछ समय लगेगा, हालांकि यह प्रतीक्षा के लायक है।

+0

धन्यवाद। मैं बस टेबल बना रहा हूँ। इसलिए मैं सी पर विरोध के रूप में इंडेक्स को सम्मिलित कर सकता हूं। 30 मिल पंक्तियां –

+1

@ कोहजाह ब्रेज़: दोनों तरीकों की जांच करें, आप पाएंगे कि इंडेक्स बनाना * एक बार * 30 मिलियन पंक्तियों पर सूचकांक में वृद्धि के मुकाबले तेजी से तेज है। –

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