আমাদের অবশ্যই MySQL ট্রিগার ব্যবহারের সুবিধা, অসুবিধা এবং সীমাবদ্ধতাগুলি বুঝতে হবে যাতে আমরা এটি কার্যকরভাবে ব্যবহার করতে পারি৷
সুবিধা
MySQL ট্রিগার ব্যবহার করার সুবিধা হল নিম্নলিখিতগুলি −
৷- সততা ডেটার - মাইএসকিউএল ট্রিগারের সাহায্যে আমরা টেবিলে ডেটার অখণ্ডতা পরীক্ষা করতে পারি। অন্য কথায়, MySQL ট্রিগার হল ডেটার অখণ্ডতা পরীক্ষা করার বিকল্প উপায়৷
- ত্রুটি ধরার জন্য দরকারী - MySQL ট্রিগার ডাটাবেস স্তরে ব্যবসায়িক যুক্তিতে ত্রুটি ধরতে পারে৷
- বিকল্প নির্ধারিত কাজগুলি চালানোর উপায় - প্রকৃতপক্ষে MySQL ট্রিগারগুলি ব্যবহার করে আমাদের নির্ধারিত কাজগুলি চালানোর জন্য অপেক্ষা করতে হবে না কারণ ট্রিগারগুলি স্বয়ংক্রিয়ভাবে 'আগে' বা 'পরে' টেবিলের ডেটাতে একটি পরিবর্তন করা হয়৷
- অডিটিং - আসলে মাইএসকিউএল ট্রিগারগুলি টেবিলে করা পরিবর্তনগুলির অডিট করার উদ্দেশ্যে খুব দরকারী৷
- অবৈধ লেনদেন প্রতিরোধ - MySQL ট্রিগারগুলি অবৈধ লেনদেন প্রতিরোধে খুবই কার্যকর৷
- ইভেন্টের লগিং− MySQL ট্রিগারগুলি একটি ইভেন্ট লগ করতে পারে এবং টেবিলের অ্যাক্সেসে তথ্য সংরক্ষণ করতে পারে৷
অসুবিধা
MySQL ট্রিগার ব্যবহার করার অসুবিধা হল নিম্নলিখিতগুলি -
- সমস্ত বৈধতা প্রতিস্থাপন করতে পারে না - প্রকৃতপক্ষে, MySQL ট্রিগারগুলি সমস্ত বৈধতা প্রতিস্থাপন করতে পারে না এবং শুধুমাত্র একটি বর্ধিত বৈধতা প্রদান করতে পারে৷
- ক্লায়েন্ট অ্যাপ্লিকেশন থেকে অদৃশ্য - মূলত MySQL ট্রিগারগুলি ক্লায়েন্ট অ্যাপ্লিকেশনগুলি থেকে অদৃশ্য করা হয় এবং কার্যকর করা হয় তাই ডাটাবেস স্তরে কী ঘটবে তা নির্ধারণ করা খুব কঠিন৷
- সার্ভারে লোড চাপান - ট্রিগারগুলি ডাটাবেস সার্ভারে একটি উচ্চ লোড চাপিয়ে দিতে পারে৷
- ডাটার উচ্চ বেগের জন্য প্রস্তাবিত নয় - ট্রিগারগুলি উচ্চ-বেগ ডেটার সাথে ব্যবহার করার জন্য উপকারী নয় যেমন ডেটা যখন প্রতি সেকেন্ডে অনেকগুলি ইভেন্ট বেশি হয়৷ কারণ উচ্চ-বেগ ডেটার ক্ষেত্রে ট্রিগারগুলি সর্বদা ট্রিগার হয়৷ ৷
নিষেধাজ্ঞা
নিম্নলিখিত কিছু বিধিনিষেধ MySQL ট্রিগারগুলিতে প্রযোজ্য -
- প্রতিটি সময়/ইভেন্টের জন্য শুধুমাত্র একটি ট্রিগার - প্রতিটি টেবিলে প্রতিটি টাইমিং/ইভেন্ট সংমিশ্রণের জন্য শুধুমাত্র একটি ট্রিগার থাকতে পারে (যেমন:একই টেবিলের জন্য দুটি INSERT ট্রিগারের আগে আমরা সংজ্ঞায়িত করতে পারি না)।
- ফেরা বিবৃতি অনুমোদিত নয় - যেহেতু ট্রিগার কোনো মান ফেরত দেয় না তাই রিটার্ন স্টেটমেন্ট অনুমোদিত নয়।
- বিদেশী কী সীমাবদ্ধতা - বিদেশী কী ক্রিয়া দ্বারা ট্রিগার সক্রিয় করা হয় না।
- সেকেলে মেটাডেটা − ধরুন, যদি একটি ট্রিগার ক্যাশে লোড করা হয়, টেবিলের মেটাডেটা পরিবর্তন হলে এটি স্বয়ংক্রিয়ভাবে পুনরায় লোড হয় না। এই ক্ষেত্রে, একটি ট্রিগার পুরানো মেটাডেটা ব্যবহার করে কাজ করতে পারে।
- 'CALL' স্টেটমেন্ট - ব্যবহার করা যাবে না আমরা ট্রিগারে CALL স্টেটমেন্ট ব্যবহার করতে পারি না।
- একটি অস্থায়ী টেবিল বা একটি দৃশ্য তৈরি করা যাবে না - আমরা একটি অস্থায়ী টেবিল বা একটি দৃশ্যের জন্য একটি দৃশ্য তৈরি করতে পারি না৷ ৷
- INFORMATION_SCHEMA - -তে পরিবর্তন দ্বারা সক্রিয় করা হয়নি প্রকৃতপক্ষে, INFORMATION_SCHEMA বা পারফরম্যান্স_স্কিমা টেবিলে করা পরিবর্তনের মাধ্যমে ট্রিগার সক্রিয় করা হয় না। কারণ এই টেবিলগুলি ভিউ এবং ট্রিগারগুলি ভিউতে অনুমোদিত নয়৷ ৷