> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 이벤트는 무엇입니까? 어떻게 예약합니까?

MySQL의 이벤트는 무엇입니까? 어떻게 예약합니까?

百草
풀어 주다: 2025-03-21 11:57:27
원래의
657명이 탐색했습니다.

MySQL의 이벤트는 무엇입니까? 어떻게 예약합니까?

MySQL의 이벤트는 일정에 따라 실행되는 작업입니다. 일상적인 데이터베이스 유지 관리를 자동화하거나 특정 시간에 특정 작업을 수행하는 데 유용합니다. 이벤트는 데이터 조작 또는 데이터 정의 문과 같은 SQL 문을 실행할 수 있습니다.

MySQL에서 이벤트를 예약하려면 CREATE EVENT 문을 사용할 수 있습니다. 이벤트를 실행하려면 이벤트 스케줄러를 활성화해야합니다. 다음 SQL 명령을 사용하여 이벤트 스케줄러를 확인하고 활성화 할 수 있습니다.

 <code class="sql">SHOW VARIABLES LIKE 'event_scheduler'; SET GLOBAL event_scheduler = ON;</code>
로그인 후 복사

이벤트 스케줄러가 활성화되면 특정 시간 또는 간격으로 실행되는 이벤트를 만들 수 있습니다. 이벤트 일정을 예약하기위한 기본 구조에는 이벤트 이름, 일정 및 실행중인 SQL 문을 지정하는 것이 포함됩니다.

MySQL에서 이벤트를 만드는 구문은 무엇입니까?

MySQL에서 이벤트를 만들기위한 일반적인 구문은 다음과 같습니다.

 <code class="sql">CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO sql_statement;</code>
로그인 후 복사

여기에서 event_name 은 이벤트의 이름이며, schedule 이벤트가 언제 및 얼마나 자주 실행되어야하는지 정의합니다. ON COMPLETION [NOT] PRESERVE 이벤트가 마지막 실행을 완료 한 후 이벤트가 삭제되어야하는지 여부를 지정합니다 ENABLE | DISABLE | DISABLE ON SLAVE 이벤트의 초기 상태를 결정하고, COMMENT 이벤트에 대한 선택적인 의견이며, sql_statement 이벤트가 실행할 SQL 코드입니다.

schedule 다음과 같은 다양한 방식으로 정의 될 수 있습니다.

  • 특정 시간에 : AT 'YYYY-MM-DD HH:MM:SS'
  • 반복 간격 : EVERY interval STARTS 'YYYY-MM-DD HH:MM:SS' ENDS 'YYYY-MM-DD HH:MM:SS'

예를 들어, 매일 오전 2시에 실행되는 이벤트를 만들려면 이전 기록을 정리합니다.

 <code class="sql">CREATE EVENT clean_old_records ON SCHEDULE EVERY 1 DAY STARTS '2023-01-01 02:00:00' DO DELETE FROM logs WHERE timestamp </code>
로그인 후 복사

MySQL에서 예정된 이벤트를 어떻게 수정하거나 삭제할 수 있습니까?

MySQL에서 예정된 이벤트를 수정하려면 ALTER EVENT 문을 사용할 수 있습니다. 이를 통해 스케줄, 실행될 SQL 문 또는 이벤트의 다른 속성을 변경할 수 있습니다. 기본 구문은 다음과 같습니다.

 <code class="sql">ALTER EVENT event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [RENAME TO new_event_name] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO sql_statement;</code>
로그인 후 복사

예를 들어, clean_old_records 이벤트의 일정을 변경하려면 매일이 2 일마다 실행됩니다.

 <code class="sql">ALTER EVENT clean_old_records ON SCHEDULE EVERY 2 DAY STARTS '2023-01-01 02:00:00';</code>
로그인 후 복사

예정된 이벤트를 삭제하려면 DROP EVENT 문을 사용하십시오. 구문은 다음과 같습니다.

 <code class="sql">DROP EVENT [IF EXISTS] event_name;</code>
로그인 후 복사

예를 들어, clean_old_records 이벤트를 삭제하려면 :

 <code class="sql">DROP EVENT clean_old_records;</code>
로그인 후 복사

MySQL에서 이벤트를 사용할 때 제한 사항이나 고려 사항은 무엇입니까?

MySQL에서 이벤트를 사용할 때 명심해야 할 몇 가지 제한 사항과 고려 사항이 있습니다.

  1. 이벤트 스케줄러 종속성 : 이벤트 스케줄러를 사용하려면 이벤트 스케줄러를 활성화해야합니다. 비활성화 된 경우 이벤트가 실행되지 않습니다.
  2. 서버 재시작 : 이벤트는 서버 재시작 전체에서 지속되지 않습니다. MySQL 서버가 다시 시작되면 이벤트 스케줄러를 다시 활성화해야합니다.
  3. 시간대 감도 : 이벤트는 시간대에 민감합니다. 예기치 않은 동작을 피하기 위해 MySQL 서버의 시간대 설정이 올바르게 구성되어 있는지 확인하십시오.
  4. 자원 사용 : 자주 실행되거나 무거운 SQL 작업을 실행하는 이벤트는 서버 성능에 영향을 줄 수 있습니다. 자원 사용을 모니터링하고 필요에 따라 이벤트 일정을 조정하십시오.
  5. 거래 지원 : 이벤트는 거래를 지원하지 않으므로 이벤트가 실패한 명세서를 실행하면 거래의 일부로 롤백 할 수 없습니다.
  6. 보안 : 이벤트를 만든 사용자의 권한과 함께 실행되면서 이벤트에서 SQL 문을 조심하십시오. 사용자에게 필요한 권한 만 있는지 확인하십시오.
  7. 이벤트 명명 : 이벤트 이름은 스키마 내에서 고유해야합니다. 혼란을 피하기 위해 설명 이름을 선택하십시오.
  8. 로깅 및 모니터링 : MySQL 로그 이벤트 실행 일반 쿼리 로그에서 이벤트 실행 및 구성된 경우 느린 쿼리 로그. 이 로그를 사용하여 이벤트 실행을 모니터링하고 문제를 해결하십시오.

이러한 제한 사항과 고려 사항을 이해함으로써 MySQL에서 이벤트를보다 효과적으로 사용하여 작업을 자동화하고 데이터베이스를 효율적으로 유지할 수 있습니다.

위 내용은 MySQL의 이벤트는 무엇입니까? 어떻게 예약합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿