[MySQL] MySQL DETERMINISTIC

안녕하세요 오늘은 베스핀글로벌 D&A실 왕승준님이 작성해 주신 [MySQL] MySQL DETERMINISTIC에 대해 알아보겠습니다 궁금하신 부분이 있으시면 댓글을 달아주세요 🙂

Mysql Function/Procedure 에서 DETERMINISTIC ,NOT DETERMINISTIC 옵션이 미치는 영향 

  • MySQL Function, Procedure에서  동일한 입력 매개변수에 대해 항상 동일한 결과를 생성하는 경우 DETERMINISTIC 인 것으로 간주, 그렇지 않은 경우 NOT DETERMINISTIC 로 간주함 
  • Function, Procedure 정의에 DETERMINISTIC가 지정 되지 않은 경우 기본값은 NOT DETERMINISTIC 함수가 결정적임을 선언하려면 DETERMINISTIC명시적으로 지정해야 함
  • NONDETERMINISTIC Functions : RAND(), UUID().
  • NONDETERMINISTIC  함수는 상수 값을 생성하지 않기 때문에 옵티마이저는 인덱스 조회와 같이 적용할 수 있는 전략을 사용할 수 없음
  • DETERMINISTIC/ NONDETERMINISTIC Functions 예제
  • 사용자 정의 함수 예제

MySQL의 Stored procedure나 Function이 NOT DETERMINISTIC으로 정의되면, MySQL은 이 Stored routine의 결과값이 시시각각 달라진다고 가정하고, 비교가 실행되는 레코드마다 이 Stored routine을 매번 새로 호출해서 비교를 실행하게 됨

  • 참고 :

감사합니다 🙂

문의: info@bespinglobal.com | 대표번호: 02-1668-1280

Leave a Comment