हमें MySQL ट्रिगर्स का उपयोग करने के फायदे, नुकसान और प्रतिबंधों को समझना होगा ताकि हम इसका प्रभावी ढंग से उपयोग कर सकें।
फायदे
MySQL ट्रिगर्स का उपयोग करने के निम्नलिखित फायदे हैं -
- ईमानदारी डेटा का - MySQL ट्रिगर की मदद से हम टेबल में डेटा की अखंडता की जांच कर सकते हैं। दूसरे शब्दों में, MySQL ट्रिगर डेटा की अखंडता की जांच करने का वैकल्पिक तरीका है।
- त्रुटियों को पकड़ने के लिए उपयोगी - MySQL ट्रिगर डेटाबेस परत में व्यावसायिक तर्क में त्रुटियों को पकड़ सकते हैं।
- वैकल्पिक निर्धारित कार्यों को चलाने का तरीका − वास्तव में MySQL ट्रिगर्स का उपयोग करने से हमें शेड्यूल किए गए कार्यों को चलाने के लिए प्रतीक्षा करने की आवश्यकता नहीं होती है क्योंकि तालिका में डेटा में संशोधन किए जाने के बाद ट्रिगर स्वचालित रूप से 'पहले' या 'बाद' में आ जाते हैं।
- लेखा परीक्षा - वास्तव में MySQL ट्रिगर तालिका में किए गए परिवर्तनों की ऑडिटिंग के उद्देश्य से बहुत उपयोगी होते हैं।
- अवैध लेनदेन की रोकथाम- MySQL ट्रिगर अमान्य लेनदेन की रोकथाम में बहुत उपयोगी हैं।
- इवेंट लॉगिंग- MySQL ट्रिगर किसी ईवेंट को लॉग कर सकते हैं और टेबल के एक्सेस पर जानकारी को स्टोर भी कर सकते हैं।
नुकसान
MySQL ट्रिगर का उपयोग करने के निम्नलिखित नुकसान हैं -
- सभी सत्यापनों को प्रतिस्थापित नहीं कर सकता − वास्तव में, MySQL ट्रिगर सभी सत्यापनों को प्रतिस्थापित नहीं कर सकते हैं और केवल एक विस्तारित सत्यापन प्रदान कर सकते हैं।
- क्लाइंट एप्लिकेशन से अदृश्य - मूल रूप से MySQL ट्रिगर क्लाइंट एप्लिकेशन से अदृश्य रूप से लागू और निष्पादित किए जाते हैं इसलिए यह पता लगाना बहुत मुश्किल है कि डेटाबेस परत में क्या होता है।
- सर्वर पर लोड आरोपित करें - ट्रिगर डेटाबेस सर्वर पर बहुत अधिक भार डाल सकते हैं।
- डेटा के उच्च वेग के लिए अनुशंसित नहीं - ट्रिगर उच्च-वेग डेटा यानी डेटा के साथ उपयोग के लिए फायदेमंद नहीं होते हैं जब प्रति सेकंड कई ईवेंट अधिक होते हैं। ऐसा इसलिए है क्योंकि उच्च-वेग डेटा के मामले में ट्रिगर हर समय ट्रिगर होते रहते हैं।
प्रतिबंध
MySQL ट्रिगर्स पर लागू होने वाले कुछ प्रतिबंध निम्नलिखित हैं -
- प्रत्येक समय/घटना के लिए केवल एक ट्रिगर - प्रत्येक तालिका में प्रत्येक समय/घटना संयोजन के लिए केवल एक ट्रिगर हो सकता है (यानी:हम एक ही तालिका के लिए दो ट्रिगर INSERT से पहले परिभाषित नहीं कर सकते हैं)।
- वापसी कथन की अनुमति नहीं है - चूंकि ट्रिगर कोई मान नहीं लौटाते हैं इसलिए रिटर्न स्टेटमेंट की अनुमति नहीं है।
- विदेशी कुंजी प्रतिबंध - विदेशी कुंजी क्रियाओं द्वारा ट्रिगर सक्रिय नहीं होते हैं।
- पुराना मेटाडेटा - मान लीजिए, यदि ट्रिगर को कैश में लोड किया जाता है, तो तालिका मेटाडेटा में परिवर्तन होने पर यह स्वचालित रूप से पुनः लोड नहीं होता है। इस मामले में, एक ट्रिगर पुराने मेटाडेटा का उपयोग करके काम कर सकता है।
- 'कॉल' कथन का उपयोग नहीं कर सकते - हम ट्रिगर में कॉल स्टेटमेंट का उपयोग नहीं कर सकते।
- अस्थायी तालिका या दृश्य नहीं बना सकते - हम अस्थायी तालिका या दृश्य के लिए दृश्य नहीं बना सकते।
- INFORMATION_SCHEMA में परिवर्तनों से सक्रिय नहीं - दरअसल, INFORMATION_SCHEMA या performance_schema तालिकाओं में किए गए परिवर्तनों से ट्रिगर सक्रिय नहीं होते हैं। ऐसा इसलिए है क्योंकि ये टेबल व्यू हैं और व्यूज पर ट्रिगर्स की अनुमति नहीं है।