2010-10-25 20 views
5

मैं लोड डेटा के माध्यम से अपने डीबी में एक बड़ी टेक्स्ट फ़ाइल लोड कर रहा हूं। फ़ाइल लगभग 122,000 लाइन लंबी है। अकेले रहने दो, डीबी को उस तालिका में INSERT के बाद ट्रिगर करने के लिए डिज़ाइन किया गया है। वास्तव में क्या होता है कि क्वेरी का निष्पादन शुरू, जैसे के लिए 15-20 मिनट क्रियान्वित रहता है और फिर इसे वापस आती हैलोड डेटा स्थानीय इन्फाइल कनेक्शन खो देता है, मैं टाइमआउट कैसे ठीक करूं?

Error Code: 2013 
Lost connection to MySQL server during query 

तो

Error Code: 2006 
MySQL server has gone away 

बाद त्रुटियों दिखाई देते हैं, मैं क्वेरी को पुन: निष्पादित और यह तुरंत समाप्त होता है;

0 row(s) affected 
Records: 122574 Deleted: 0 Skipped: 122574 Warnings: 0 

और तालिका वास्तव में आयात की जाती है;

select * from quote 
122574 row(s) returned 

मैं पर मैक ओएस एक्स 10.6.4 mysqld 5.1.51 चल रहा हूँ और मेरी क्वेरी

LOAD data local INFILE 
     '/Users/ash/quotes/data.txt' 
     INTO TABLE quote fields 
     TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\r\n' 
      (quote.date,quote.ticker,quote.open, 
      quote.high,quote.low,quote.close,quote.volume,@market) 
      SET market = 'sp'; 

यह db-कनेक्शन का समय है लगता है, मैं इसे इस तरह ठीक हैं?

+0

देखें कि फ़ाइल के लोड होने के बाद, आप थोक में, और बाद में अपने परिचालनों को निष्पादित करने पर विचार कर सकते हैं। 122 के पंक्तियां, विशेष रूप से केवल कुछ संख्यात्मक स्तंभों के साथ, प्रत्येक, * छोटा * है और वास्तव में केवल कुछ सेकंड लेना चाहिए, अधिकतर ... – user359996

उत्तर

0

जब आप mysqld शुरू करते हैं तो आप wait_timeout चर सेट करके समय सीमा बदल सकते हैं। MySQL documentation