Back/MySQL

MySQL Event Trigger

잘잔디 2023. 7. 4. 14:30

Stand_Up_Seoul 프로젝트를 진행하며 사용했던 MySQL 기능이다.

  • 하루에 한 번 정해진 시간에 실행되도록 만드는 Event 처리가 필요했다.
  • wearther 테이블과 population 테이블이 분석용으로 redshift로 이동함에 따라 DB단에서는 1주일치의 데이터만 필요하기 때문에 매일 삭제해 주는 Event를 추가해 주었다.
  • 해당 Event Trigger를 사용함으로써 RDS의 과부하를 줄여줄 수 있었다.

 

weather 테이블 구조

weather - 7일 치 데이터만 남기고 삭제

CREATE EVENT delete_old_weather_data
ON SCHEDULE EVERY 1 DAY
STARTS '2023-06-20 19:00'
DO
  DELETE FROM weather WHERE created_date < DATE_SUB(CURDATE(), INTERVAL 7 DAY);

population 테이블 구조

population - 7일 치 데이터만 남기고 삭제

CREATE EVENT delete_old_population_data
ON SCHEDULE EVERY 1 DAY
STARTS '2023-06-20 19:00'
DO
  DELETE FROM population WHERE created_date < DATE_SUB(CURDATE(), INTERVAL 7 DAY);