Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 트리거 사용의 장점, 단점 및 제한 사항은 무엇입니까?


우리는 MySQL 트리거를 효과적으로 사용할 수 있도록 사용의 장점, 단점 및 제한 사항을 이해해야 합니다.

장점

다음은 MySQL 트리거 사용의 장점입니다. −

  • 무결성 데이터 - MySQL 트리거의 도움으로 테이블의 데이터 무결성을 확인할 수 있습니다. 즉, MySQL 트리거는 데이터 무결성을 확인하는 대체 방법입니다.
  • 오류를 잡는 데 유용 - MySQL 트리거는 데이터베이스 계층의 비즈니스 로직에서 오류를 포착할 수 있습니다.
  • 대안 예약된 작업을 실행하는 방법 − 실제로 MySQL 트리거를 사용하면 테이블의 데이터가 수정되기 '전' 또는 '후'에 트리거가 자동으로 호출되기 때문에 예약된 작업을 실행하기 위해 기다릴 필요가 없습니다.
  • 감사 - 실제로 MySQL 트리거는 테이블의 변경 사항을 감사하는 데 매우 유용합니다.
  • 무효 거래 방지- MySQL 트리거는 유효하지 않은 트랜잭션을 방지하는 데 매우 유용합니다.
  • 이벤트 기록- MySQL 트리거는 이벤트를 기록할 수 있으며 테이블 액세스에 대한 정보도 저장할 수 있습니다.

단점

다음은 MySQL 트리거 사용의 단점입니다. −

  • 모든 유효성 검사를 대체할 수 없음 - 실제로 MySQL 트리거는 모든 유효성 검사를 대체할 수 없으며 확장된 유효성 검사만 제공할 수 있습니다.
  • 클라이언트 애플리케이션에서 보이지 않음 − 기본적으로 MySQL 트리거는 클라이언트 애플리케이션에서 보이지 않게 호출되고 실행되므로 데이터베이스 계층에서 어떤 일이 발생하는지 파악하기가 매우 어렵습니다.
  • 서버에 부하 부과 - 트리거는 데이터베이스 서버에 높은 로드를 부과할 수 있습니다.
  • 고속 데이터에는 권장하지 않음 - 트리거는 고속 데이터, 즉 초당 이벤트 수가 많을 때의 데이터와 함께 사용하는 데 유용하지 않습니다. 고속 데이터의 경우 트리거가 항상 트리거되기 때문입니다.

제한 사항

다음은 MySQL 트리거에 적용되는 몇 가지 제한 사항입니다. −

  • 각 타이밍/이벤트에 대해 하나의 트리거만 − 각 테이블은 각 타이밍/이벤트 조합에 대해 하나의 트리거만 가질 수 있습니다(예:동일한 테이블에 대해 두 개의 BEFORE INSERT 트리거를 정의할 수 없음).
  • 반환 구문은 허용되지 않습니다 − 트리거는 값을 반환하지 않으므로 RETURN 문이 허용되지 않습니다.
  • 외래 키 제한 − 트리거는 외래 키 동작에 의해 활성화되지 않습니다.
  • 오래된 메타데이터 - 트리거가 캐시에 로드되는 경우 테이블 메타데이터가 변경될 때 트리거가 자동으로 다시 로드되지 않는다고 가정합니다. 이 경우 트리거는 오래된 메타데이터를 사용하여 작동할 수 있습니다.
  • 'CALL' 문을 사용할 수 없음 - 트리거에서 CALL 문을 사용할 수 없습니다.
  • TEMPORARY 테이블 또는 뷰를 생성할 수 없음 - 임시 테이블이나 보기에 대한 보기를 만들 수 없습니다.
  • INFORMATION_SCHEMA의 변경으로 인해 활성화되지 않음 - 실제로 트리거는 INFORMATION_SCHEMA 또는 performance_schema 테이블의 변경 사항에 의해 활성화되지 않습니다. 이러한 테이블은 보기이고 보기에서 트리거가 허용되지 않기 때문입니다.