Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Ưu điểm, nhược điểm và hạn chế của trigger MySQL

Cần hiểu rõ ưu, nhược điểm và hạn chế của trigger MySQL để sử dụng hiệu quả.

Ưu điểm

  • Tính toàn vẹn dữ liệu — Trigger giúp kiểm tra tính toàn vẹn dữ liệu trong bảng, là cách thay thế để kiểm tra.
  • Bắt lỗi logic nghiệp vụ — Trigger có thể bắt lỗi trong lớp cơ sở dữ liệu.
  • Thay thế tác vụ theo lịch — Trigger kích hoạt tự động BEFORE hoặc AFTER thay đổi dữ liệu, không cần chờ tác vụ theo lịch.
  • Kiểm toán (Auditing) — Rất hữu ích cho việc kiểm toán các thay đổi trong bảng.
  • Ngăn chặn giao dịch không hợp lệ — Trigger rất hữu ích để ngăn chặn các giao dịch không hợp lệ.
  • Ghi nhật ký sự kiện — Trigger có thể ghi log sự kiện và lưu thông tin truy cập bảng.

Nhược điểm

  • Không thay thế tất cả validation — Trigger chỉ cung cấp validation mở rộng, không thay thế hoàn toàn.
  • Vô hình từ ứng dụng client — Trigger chạy ngầm, khó phát hiện điều gì xảy ra ở lớp database.
  • Gây tải cho server — Trigger có thể gây tải cao cho database server.
  • Không khuyến nghị cho dữ liệu tốc độ cao — Trigger không phù hợp khi số sự kiện/giây lớn, vì trigger sẽ kích hoạt liên tục.

Hạn chế

  • Chỉ một trigger cho mỗi timing/event — Mỗi bảng chỉ có một trigger cho mỗi tổ hợp timing/event (ví dụ: không thể tạo hai BEFORE INSERT cho cùng bảng).
  • Không dùng RETURN — Trigger không trả về giá trị nên RETURN không được phép.
  • Hạn chế khóa ngoại — Trigger không được kích hoạt bởi hành động khóa ngoại.
  • Metadata lỗi thời — Nếu trigger được nạp vào cache, nó không tự động nạp lại khi metadata bảng thay đổi, có thể dùng metadata cũ.
  • Không dùng CALL — Không thể dùng câu lệnh CALL trong trigger.
  • Không tạo bảng tạm hoặc view — Không thể tạo view cho bảng tạm hoặc view.
  • Không kích hoạt bởi thay đổi INFORMATION_SCHEMA — Trigger không kích hoạt bởi thay đổi trong INFORMATION_SCHEMA hoặc performance_schema vì đây là view, trigger không cho phép trên view.