2009-04-06 9 views
7

मेरे पास MySQL में एक लंबी चल रही प्रक्रिया है। यह एक सप्ताह के लिए चल रहा है। एक प्रतिकृति मास्टर के लिए एक और कनेक्शन है, लेकिन मैंने दास प्रसंस्करण को रोक दिया है, इसलिए प्रभावी रूप से कुछ और नहीं चल रहा है।कैसे बताएं कि एक MySQL प्रक्रिया फंस गई है या नहीं?

मैं कैसे बता सकता हूं कि यह प्रक्रिया अभी भी काम कर रही है या नहीं? मुझे पता था कि इसमें काफी समय लगेगा, इसलिए मैंने इसे अपने डेटाबेस इंस्टेंस पर रखा है, लेकिन यह अनुमान लगाया गया है। जाहिर है, अगर यह अभी भी काम कर रहा है, तो मैं इसे मारना नहीं चाहता। यदि यह ज़ोंबी है, तो मुझे नहीं पता कि यह काम कैसे किया जा सकता है।

यह "डेटा भेज रहा है" स्थिति में है। तालिका एक InnoDB एक है लेकिन बिना किसी एफके संदर्भ के क्वेरी का उपयोग किया जाता है। क्वेरी शुरू होने के बाद InnoDB स्थिति कोई त्रुटि या ताले दिखाती है।

किसी भी विचार की सराहना की जाती है।

उत्तर

3

आपको इसे मारने और बेहतर सूचकांक के साथ आने की आवश्यकता है।

मैंने एक लड़के के लिए नौकरी की। लगभग 35 मिलियन पंक्तियों वाली एक टेबल थी। आपकी बैच प्रक्रिया, आपकी तरह, एक सप्ताह चला रही थी, बिना किसी अंत में। मैंने कुछ इंडेक्स जोड़े, ऑर्डर और उसके बैच प्रक्रिया के तरीकों में कुछ बदलाव किए, और पूरी चीज लगभग ढाई घंटों तक पहुंच गई। एक धीमी मशीन पर।

+0

आप सही हैं कि यह अनुक्रमित नहीं है और साथ ही यह भी हो सकता है। लेकिन निश्चित रूप से अगर सूचकांक में सुधार करना प्रक्रिया को चलाएगा, इसे चलाने के लिए लंबे समय के बाद ही सफल होगा। मैं यह नहीं बता सकता कि यह इस बिंदु पर कुछ भी कर रहा है। – user87843

5

सक्रिय करने के लिए "PROCESSLIST दिखाएं" का प्रयास करें।

बेशक अगर आप इसे मार देते हैं, तो यह इसे वापस उतना ही समय लेना चाहता है।

+0

यह 'डेटा भेजना' स्थिति में, प्रक्रिया सूची में सक्रिय है। सक्रिय होने वाले सेकंड की संख्या में वृद्धि जारी है। मुझे नहीं पता कि यह कैसे बताना है कि यह वास्तव में कुछ कर रहा है या नहीं। – user87843

+0

क्या फ़ाइल आकार बदल रहे हैं? साथ ही, आपको स्थिति में कुछ प्रभाव दिखाना चाहिए (विभिन्न wrrites और कैश में)। – dkretz

0

जो आपने कहा है उसे देखते हुए, यह अटक नहीं गया है। हालांकि, पूरी तरह से कोई गारंटी नहीं है कि यह वास्तव में उचित समय के समान कुछ भी खत्म हो जाएगा। इंडस्ट्रीज जोड़ने से लगभग निश्चित रूप से मदद मिलेगी, और क्वेरी प्रकार के आधार पर इसे टेम्पलेट टेबल का उपयोग करने वाले प्रश्नों की एक श्रृंखला में रीफैक्टरिंग करने से संभवतः आपको एक बड़ा प्रदर्शन बढ़ावा मिल सकता है। मैं शायद खत्म होने के लिए इंतजार करने का सुझाव नहीं दूंगा।

1

आकार वाले डेटाबेस पर बेहतर प्रदर्शन के लिए, आप एक दस्तावेज़ आधारित डेटाबेस जैसे mongoDB को देखना चाहते हैं। डेटाबेस को स्टोर करने में अधिक हार्ड ड्राइव स्थान लगेगा, लेकिन आपकी वर्तमान स्कीमा के आधार पर, आपको बेहतर प्रदर्शन मिल सकता है।

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