2012-04-20 13 views
13

मेरे वेब ऐप में मैं दो पुनरावर्ती घटनाओं का उपयोग करता हूं जो डेटाबेस में तालिकाओं में से एक को "साफ़ करें", दोनों 15 मिनट या उससे अधिक निष्पादित होते हैं।MySQL घटनाएं कितनी महंगी हैं?

मेरा सवाल है, क्या इससे भविष्य में प्रदर्शन में समस्याएं आ सकती हैं? क्योंकि मैंने कहीं पढ़ा है- मुझे याद नहीं है कि वास्तव में- MySQL events महीने में एक बार चलाने के लिए निर्धारित किया जाना चाहिए। बात यह है कि, वही घटनाएं टेबल को बहुत कम आकार में रखती हैं (क्योंकि वे 15 ~ मिनट से पुराने रिकॉर्ड हटाते हैं), हो सकता है कि यह उनके निष्पादन की आवृत्ति को क्षतिपूर्ति करे, है ना?

इसके अलावा, क्या एक ही आवृत्ति में उन्हें एक बड़े MySQL ईवेंट या कई छोटे लोगों के लिए बेहतर होना बेहतर है?

उत्तर

4

मुझे नहीं लगता कि मासिक आधार में प्रदर्शन संकेत है कि इसके साथ क्या करना है इसके बारे में केवल एक सुझाव है। तो मुझे लगता है कि आप घटनाओं का उपयोग कर अपने सफाई करने के ठीक हैं।

अंत documentation में suggets कि घटनाओं

सैद्धांतिक रूप हैं, यह यूनिक्स crontab (यह भी एक "क्रॉन जॉब" के रूप में जाना जाता है) या Windows कार्य शेड्यूलर के विचार के समान है।

और उनके लिए अवधारणा यह है कि यदि आप ऐसा करना चाहते हैं तो आप हर मिनट एक कार्य चला सकते हैं।


कि प्रश्न के दूसरे भाग पर:

को क्रमानुसार या इसे फैल गया। यदि आप उन्हें कई घटनाओं में विभाजित करते हैं जो एक ही समय में चलेंगे तो आप संभवतः बहुत अधिक सीपीयू उपयोग की स्पाइक्स बनाएंगे जो घटनाओं को संसाधित करते समय एप्लिकेशन को धीमा कर सकते हैं।

तो या तो सब कुछ एक घटना में पैक करें ताकि यह उत्तराधिकार में चलता है या एकल घटनाओं को फैलाता है ताकि वे 15 मिनट के समय के दौरान अलग-अलग समय पर निष्पादित हो जाएं। व्यक्तिगत रूप से मुझे लगता है कि पहले व्यक्ति को प्राथमिकता दी जानी चाहिए, उन्हें एक ही घटना में पैक करें, फिर उन्हें उत्तराधिकार में चलाने की गारंटी दी जाती है, भले ही उनमें से कोई भी सामान्य से अधिक समय तक चल रहा हो।

यह cronjobs के लिए भी जाता है। यदि आप एक ही समय में 30 लंबे समय से चलने वाले निर्यातों को बहाल करते हैं तो आपका समय उस समय के दौरान बुरी तरह विफल होने जा रहा है (कठिन तरीका सीखा है)।

+0

आपके उत्तर आदमी के लिए धन्यवाद! अधिक विस्तृत। मुझे लगता है कि मैंने आपके द्वारा उल्लिखित दूसरे विकल्प के साथ जाना होगा, जिसमें कई घटनाएं होंगी लेकिन सीपीयू उपयोग – federicot

+1

@ जोहान डीओटीवी वितरित करने के लिए उन्हें अतुल्यकालिक रूप से निष्पादित करने के लिए निष्पादित किया जाएगा, अगर आप लॉग बनाने की तलाश में हैं या कुछ आपको मोंगो-डीबी पर देखना चाहिए इसके लिए, कैप्ड संग्रह नामक एक सुविधा है जो तालिका के आकार को सीमित कर देगी और इसे स्वचालित रूप से साफ करेगी: http://www.mongodb.org/display/DOCS/Capped+Collections – bardiir