MySQL ALTER EVENT는 이미 생성된 이벤트의 속성을 수정할 수 있는 명령어입니다. 이벤트의 실행 주기, 시작 시간, 이름 또는 실행 작업을 변경할 수 있어 이벤트를 효율적으로 관리하는 데 필수적인 도구입니다. 이 기능은 이벤트를 삭제하고 다시 생성할 필요 없이 간단한 명령으로 수정할 수 있다는 장점이 있습니다.
ALTER EVENT의 주요 기능
- 이벤트 주기 변경: 이벤트의 실행 간격을 조정할 수 있습니다.
- 시작 시간 수정: 이벤트의 시작 시간을 새로 설정 가능합니다.
- 작업 내용 변경: 이벤트가 수행할 SQL 작업을 재정의할 수 있습니다.
- 이벤트 이름 변경: 필요에 따라 이벤트 이름을 수정할 수 있습니다.
ALTER EVENT 문법
ALTER EVENT 이벤트명
[RENAME TO 새이벤트명]
[ON SCHEDULE 일정]
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[DO 작업];
- RENAME TO: 이벤트 이름 변경.
- ON SCHEDULE: 이벤트의 실행 주기 및 시작 시간 변경.
- ON COMPLETION: 완료된 이벤트를 유지할지 여부 설정.
- ENABLE/DISABLE: 이벤트 활성화 또는 비활성화.
- DO: 실행할 작업 수정.
예제 1: 실행 주기 변경하기
ALTER EVENT daily_backup
ON SCHEDULE EVERY 2 DAY;
이 코드는 daily_backup 이벤트의 실행 주기를 하루에서 이틀로 변경합니다.
예제 2: 작업 내용 수정하기
ALTER EVENT cleanup_logs
DO
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 90 DAY;
이 코드는 이벤트가 수행하는 작업을 수정하여 90일 이상 지난 로그를 삭제하도록 변경합니다.
예제 3: 시작 시간 변경하기
ALTER EVENT monthly_summary
ON SCHEDULE EVERY 1 MONTH STARTS '2025-02-01 00:00:00';
위 코드는 monthly_summary 이벤트가 매월 1일 00:00에 실행되도록 시작 시간을 설정합니다.
예제 4: 이벤트 이름 변경하기
ALTER EVENT old_event_name
RENAME TO new_event_name;
이 코드는 old_event_name 이벤트의 이름을 new_event_name으로 변경합니다.
ALTER EVENT로 이벤트 관리하기
1. 이벤트 활성화 및 비활성화
이벤트를 일시적으로 중지하거나 다시 활성화할 수 있습니다:
ALTER EVENT data_cleanup DISABLE;
ALTER EVENT data_cleanup ENABLE;
2. 완료된 이벤트 삭제 방지
이벤트 실행이 완료된 후에도 유지되도록 설정하려면:
ALTER EVENT data_backup
ON COMPLETION PRESERVE;
3. 정확한 실행 제어
이벤트가 너무 자주 실행되거나 의도하지 않은 시간에 실행되지 않도록 세부 설정을 관리할 수 있습니다.
ALTER EVENT 사용 시 주의사항
- EVENT 권한 필요: ALTER EVENT를 실행하려면 이벤트를 소유하거나 EVENT 권한이 있어야 합니다.
- 서버 시간대 확인: 이벤트의 실행 시간이 MySQL 서버의 시간대를 기준으로 하기 때문에 서버 시간대를 확인해야 합니다.
- 비활성화된 이벤트: 비활성화된 이벤트는 실행되지 않으므로 변경 후 반드시 ENABLE로 활성화해야 합니다.
ALTER EVENT 활용 사례
1. 데이터 정리 프로세스 변경로그 삭제 주기를 7일로 변경하고, 삭제 기준을 1년 이상 경과된 로그로 수정합니다.
ALTER EVENT cleanup_logs
ON SCHEDULE EVERY 7 DAY
DO
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 1 YEAR;
2. 백업 주기 변경백업 이벤트의 실행 주기를 1주에서 2주로 변경하여 서버 리소스 사용을 줄입니다.
ALTER EVENT weekly_backup
ON SCHEDULE EVERY 2 WEEK;
3. 테이블 최적화 이벤트 수정특정 테이블만 최적화하도록 작업 내용을 변경합니다.
ALTER EVENT optimize_tables
DO
OPTIMIZE TABLE users, orders, products;
이벤트 관리의 중요성
MySQL의 이벤트 기능을 효과적으로 관리하면 데이터베이스 작업의 자동화를 극대화할 수 있습니다. ALTER EVENT는 이러한 자동화를 유연하게 수정하고 최적화하는 데 필수적입니다.
참고 문서
MySQL ALTER EVENT에 대한 공식 문서: https://dev.mysql.com/doc/refman/8.0/en/alter-event.html
'DB' 카테고리의 다른 글
[MySQL] CREATE PROCEDURE 완벽 가이드 사용법(프로시저 생성) (0) | 2025.01.08 |
---|---|
[MySQL] DROP FUNCTION 완벽 가이드 사용법(함수 삭제) (0) | 2025.01.08 |
[MySQL] CREATE FUNCTION 완벽 가이드 사용법(함수 생성) (0) | 2025.01.08 |
[MySQL] DROP EVENT 완벽 가이드 사용법(이벤트 삭제) (0) | 2025.01.08 |
[MySQL] CREATE EVENT 완벽 가이드 사용법(스케줄링) (0) | 2025.01.08 |
[MySQL] REVOKE 완벽 가이드 사용법(권한 제거) (0) | 2025.01.08 |
[MySQL] GRANT 완벽 가이드 사용법(권한 부여) (0) | 2025.01.08 |
[MySQL] SHOW CREATE 완벽 가이드 사용법(객체 생성 스크립트 보기) (0) | 2025.01.08 |