Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ข้อดี ข้อเสีย และข้อจำกัดของการใช้ทริกเกอร์ MySQL คืออะไร


เราต้องเข้าใจข้อดี ข้อเสีย และข้อจำกัดของการใช้ทริกเกอร์ MySQL เพื่อให้สามารถใช้งานได้อย่างมีประสิทธิภาพ

ข้อดี

ต่อไปนี้คือข้อดีของการใช้ทริกเกอร์ MySQL -

  • ความซื่อสัตย์ ของข้อมูล − ด้วยความช่วยเหลือของทริกเกอร์ MySQL เราสามารถตรวจสอบความสมบูรณ์ของข้อมูลในตารางได้ กล่าวคือ ทริกเกอร์ MySQL เป็นอีกทางเลือกหนึ่งในการตรวจสอบความสมบูรณ์ของข้อมูล
  • มีประโยชน์ในการจับข้อผิดพลาด - ทริกเกอร์ MySQL สามารถตรวจจับข้อผิดพลาดในตรรกะทางธุรกิจในชั้นฐานข้อมูลได้
  • ทางเลือก วิธีเรียกใช้งานที่กำหนดเวลาไว้ - อันที่จริงแล้ว ด้วยการใช้ทริกเกอร์ MySQL เราไม่ต้องรอเพื่อเรียกใช้งานที่กำหนดเวลาไว้ เนื่องจากทริกเกอร์จะถูกเรียกใช้โดยอัตโนมัติ "ก่อน" หรือ "หลัง" การแก้ไขจะกระทำกับข้อมูลในตาราง
  • การตรวจสอบ − ที่จริงแล้วทริกเกอร์ MySQL มีประโยชน์มากสำหรับจุดประสงค์ในการตรวจสอบการเปลี่ยนแปลงที่ทำในตาราง
  • การป้องกันธุรกรรมที่ไม่ถูกต้อง− ทริกเกอร์ MySQL มีประโยชน์มากในการป้องกันธุรกรรมที่ไม่ถูกต้อง
  • การบันทึกเหตุการณ์− ทริกเกอร์ MySQL สามารถบันทึกเหตุการณ์และยังสามารถเก็บข้อมูลในการเข้าถึงตารางได้

ข้อเสีย

ต่อไปนี้คือข้อเสียของการใช้ทริกเกอร์ MySQL -

  • ไม่สามารถแทนที่การตรวจสอบทั้งหมดได้ - อันที่จริง ทริกเกอร์ MySQL ไม่สามารถแทนที่การตรวจสอบทั้งหมดได้และสามารถให้การตรวจสอบเพิ่มเติมได้เท่านั้น
  • มองไม่เห็นจากแอปพลิเคชันไคลเอนต์ - โดยพื้นฐานแล้วทริกเกอร์ MySQL จะถูกเรียกใช้และดำเนินการที่มองไม่เห็นจากแอปพลิเคชันไคลเอ็นต์ ดังนั้นจึงเป็นเรื่องยากมากที่จะทราบว่าเกิดอะไรขึ้นในเลเยอร์ฐานข้อมูล
  • กำหนดภาระงานบนเซิร์ฟเวอร์ - ทริกเกอร์สามารถกำหนดให้เซิร์ฟเวอร์ฐานข้อมูลมีภาระงานสูง
  • ไม่แนะนำสำหรับข้อมูลความเร็วสูง - ทริกเกอร์ไม่เป็นประโยชน์สำหรับใช้กับข้อมูลความเร็วสูง เช่น ข้อมูลเมื่อมีเหตุการณ์จำนวนมากต่อวินาที เป็นเพราะในกรณีของข้อมูลความเร็วสูง ทริกเกอร์จะถูกทริกเกอร์ตลอดเวลา

ข้อจำกัด

ต่อไปนี้คือข้อจำกัดบางประการที่ใช้กับทริกเกอร์ MySQL -

  • ทริกเกอร์เพียงครั้งเดียวสำหรับแต่ละช่วงเวลา/เหตุการณ์ - แต่ละตารางสามารถมีทริกเกอร์ได้เพียงตัวเดียวสำหรับแต่ละชุดเวลา/เหตุการณ์ (เช่น:เราไม่สามารถกำหนดทริกเกอร์ BEFORE INSERT สองตัวสำหรับตารางเดียวกันได้)
  • คืนสินค้า ไม่อนุญาตให้ใช้คำสั่ง - เนื่องจากทริกเกอร์ไม่คืนค่าใดๆ ดังนั้นจึงไม่อนุญาตคำสั่ง RETURN
  • ข้อจำกัดของคีย์ต่างประเทศ - ทริกเกอร์ไม่ได้เปิดใช้งานโดยการทำงานของคีย์ต่างประเทศ
  • ข้อมูลเมตาที่ล้าสมัย - สมมติว่า หากทริกเกอร์โหลดลงในแคช ทริกเกอร์จะไม่โหลดซ้ำโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงข้อมูลเมตาของตาราง ในกรณีนี้ ทริกเกอร์สามารถทำงานได้โดยใช้ข้อมูลเมตาที่ล้าสมัย
  • ไม่สามารถใช้คำสั่ง 'CALL' ได้ - เราไม่สามารถใช้คำสั่ง CALL ในทริกเกอร์ได้
  • ไม่สามารถสร้างตารางชั่วคราวหรือมุมมอง - เราไม่สามารถสร้างมุมมองสำหรับตารางชั่วคราวหรือมุมมองได้
  • ไม่ได้เปิดใช้งานโดยการเปลี่ยนแปลงใน INFORMATION_SCHEMA - ที่จริงแล้ว ทริกเกอร์ไม่ได้เปิดใช้งานโดยการเปลี่ยนแปลงที่ทำในตาราง INFORMATION_SCHEMA หรือ performance_schema เป็นเพราะตารางเหล่านี้เป็นมุมมองและไม่อนุญาตให้ทริกเกอร์ในการดู