2009-05-21 12 views
8

उदाहरण के लिए मैं एक प्रश्न के साथ MySQL तालिका में 100 000 पंक्तियों को कैसे सम्मिलित करूं?मैं MySQL में बड़ी संख्या में पंक्तियों को कैसे सम्मिलित करूं?

+0

स्पष्ट प्रश्न "क्या से?" है। अगर उत्तर स्मृति से है, तो एक एसक्यूएल फाइल को बहुत सावधानीपूर्वक लिखना शुरू करें। अन्यथा, उचित भाषा और पर्यावरण का उपयोग करें। –

उत्तर

-1

जहाँ तक मुझे पता नहीं है। आपको एक लूप की आवश्यकता होगी।

3

आप INSERT कथन के साथ बैच सम्मिलित कर सकते हैं, लेकिन आपकी क्वेरी max_allowed_packet से थोड़ा अधिक नहीं हो सकती है।

पंक्तियों के आकार के आधार पर, 100k पंक्तियों के लिए, आप शायद इससे अधिक हो जाएंगे।

एक तरीका यह कई हिस्सों में विभाजित करना होगा। वैसे भी यह शायद एक अच्छा विचार है।

वैकल्पिक रूप से आप एक टैब-सीमांकित (या अन्य सीमांकित) फ़ाइल से लोड करने के लिए लोड डेटा इन्फाइल (या लोड डेटा स्थानीय INFILE) का उपयोग कर सकते हैं। विवरण के लिए दस्तावेज़ देखें।

लोड डेटा max_allowed_packet सीमा के अधीन नहीं है।

7
insert into $table values (1, a, b), (2, c, d), (3, e, f); 

यह 3 पंक्तियों का सम्मिलन करेगा। 100,000 तक पहुंचने के लिए आवश्यकतानुसार जारी रखें। ईटीएल काम करते समय मैं उस तरह से 1,000 ~ ब्लॉक करता हूं।

यदि आपका डेटा किसी फ़ाइल में स्थिर है, तो इसे बदल रहा है और लोड डेटा इन्फाइल का उपयोग करना सबसे अच्छा तरीका होगा, लेकिन मुझे लगता है कि आप यह पूछ रहे हैं क्योंकि आप ऐसा कुछ करते हैं।

यह भी ध्यान दें कि किसी और ने max_allowed_packet आकार के बारे में आपकी क्वेरी की लंबाई सीमित करने के बारे में क्या कहा है।

0

लोडफाइल() या यार डेटा को एक्सएमएल फ़ाइल में कनवर्ट करने का प्रयास करें और फिर लोड और निकालें() फ़ंक्शन को डेटा को MySQL डेटाबेस में लोड करने के लिए उपयोग करें।

यह एक क्वेरी और सबसे तेजी से विकल्प है

यहां तक ​​कि मैं एक ही कर रहा हूँ, मैं फ़ाइलों को अगर 1.5 GB पंक्तियों के लाखों लोगों के आसपास था। मैंने अपने मामले में दोनों विकल्प का उपयोग किया है।

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