MySQL Event   MySQL 이벤트, MySQL 이벤트 스케줄러

(2026-02-02)

1. MySQL Event 및 Event Scheduler

  ㅇ Event (이벤트) 이란?  
     - 데이터베이스 내부에서 특정 시각(1회성) 또는 일정 주기(반복) 마다, 
        . 자동으로 SQL 문을 실행하도록 정의한 객체
     - 특징  
        . 운영체제cron 과 유사한 기능을, DBMS 내부에서 제공하는 자동 실행 메커니즘
        . 이벤트는, SQL문 직접 실행 또는 저장 프로시저 호출 형태로 실행될 수 있음
     - 용도  :  통계 집계, 주기데이터 정리, 로그 삭제, 상태 갱신, 배치성 DB 작업 자동화 등

  ㅇ Event Scheduler 이란?
     - 등록된 이벤트를 실제로 실행하는 DBMS 내부의 백그라운드 스레드
        . 만일, 이벤트 스케줄러가 비활성화(OFF) 되어 있으면,
        . 이벤트 정의가 존재하더라도, 이벤트는 실행되지 않음


2. MySQL Event 및 Event Scheduler 실행 점검이벤트 스케줄러 가동 여부 확인  :  SHOW VARIABLES LIKE 'event_scheduler';
     - 결과 값  :  (ON  :  가동 중), (OFF  :  비 가동), (DISABLED  :  서버 설정상 사용 불가)
  ㅇ 서버 기동 시 이벤트 스케줄러 자동 가동 설정 
     - (my.ini 또는 my.cnf 파일 내)  :  [mysqld] event_scheduler = ON
        . DB 서버 기동 시  :  이벤트 스케줄러 스레드가 자동으로 생성됨
        . 해당 설정이 없다면,  :  수동으로 ON 하더라도, 서버 재기동 후에 다시 OFF 상태로 원위치됨
  ㅇ 시스템 변수에 의한 이벤트 스케줄러 제어  :  SET GLOBAL event_scheduler = ON;
     - 영구 적용을 위해서는 설정 파일 (my.ini 또는 my.cnf 파일 내) 수정 필요

  ㅇ 현재 등록된 이벤트 확인  :  SHOW EVENTS;
     - 주요 확인 항목  :  이벤트명, 상태 (ENABLED / DISABLED), 이벤트 유형, 실행 주기 또는 시각
  ㅇ 이벤트 실행 이력 확인  :  INFORMATION_SCHEMA.EVENTS 테이블 내 LAST_EXECUTED 칼럼
     - (SELECT EVENT_NAME,STATUS,LAST_EXECUTED FROM information_schema.EVENTS;)
        . LAST_EXECUTED  :  이벤트가 마지막으로 실행된 시각으로,
           .. 반복 이벤트의 정상 동작 여부 판단에 활용됨 

  ㅇ 이벤트 생성 例) 
       
DROP EVENT IF EXISTS periodic_stat;

CREATE EVENT 이벤트명
    ON SCHEDULE
        EVERY 30 MINUTE            -- 매 30분 마다
          -- 1회 만 실행의 경우에는, 
          -- EVERY 절 대신에. => AT 절을 사용 함
	STARTS CURRENT_TIMESTAMP   -- 현재 시각(CURRENT_TIMESTAMP)부터 시작 함
          -- 또는, SRART '2018-05-15 00:00:00' END '2018-05-15 02:00:00' 처럼
          -- 직접적으로 시작 끝의 시각을 명시하는 것도 가능
          -- 또는, STARTS '2019-04-08 19:30:00' ENABLE 처럼
          -- 시작 시각을 명시하고 그 시각부터 주기적으로 시행하는 것도 가능
    DO
	CALL 함수명();             -- 별도수행 함수에 의한 호출 실행
          -- 단지 1개 쿼리문 또는 별도 프로시저 실행
          -- 또는 BEGIN ~ END에 의한 복합절도 가능
※ [참고] Event 관련 실행 권한 : (DEFINER) - 이벤트, 프로시저, 함수 등은, DEFINER로 지정된 계정의 권한으로 실행됨 . 즉, 이벤트, 프로시저, 함수DB 객체는, DEFINER로 지정된 계정의 권한을 기준으로 실행됨 - DEFINER는, 객체 생성 시 함께 지정되며, 실행 시점에는 호출 사용자와 무관하게, . DEFINER 계정의 권한이 적용됨 - DEFINER 형식 : 사용자명@호스트명 * 만일, DEFINER 계정이 존재 않거나, 권한이 제한된 경우에, 해당 객체의 실행이 제한됨

MySQL
1. MySQL   2. 마리아 DB   3. MySQL 서버   4. MySQL 저장 루틴   5. MySQL 백업   6. MySQL 계정   7. MySQL 활용 (기타)   8. MySQL 함수   9. Prepare 문   10. MySQL 이벤트   11.
MySQL 변수,타입,문자셋
  12.
MySQL 저장
 

용어해설 종합 (단일 페이지 형태)

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]