아래 편집기는 일반적인 mysql 이벤트 이벤트스케줄러(필독) 꽤 좋은 것 같아서 지금 공유해서 참고용으로 올려보겠습니다.
개요
MySQL에도 자체 이벤트 스케줄러가 있는데, 이는 간단히linux의 crontab 작업으로 이해될 수 있지만 SQL 응용 프로그램의 경우 그 기능이 더 완전하고 개인적으로 너무 많이 생성하면 DB 성능에 영향을 미치고 디버깅이 어려울 수 있다고 생각합니다. MySQL 이벤트 스케줄러의 주요 내용
마스터 스위치
event_scheduler 매개변수는 이벤트 스케줄러의 마스터 스위치로 일반적으로 ON 또는 OFF로 설정하는 것이 좋습니다. 비활성화로 설정하는 것이 좋습니다. ON으로 설정하면 프로세스목록
을 볼 수 있습니다생성, 수정, 보기 등이 가능합니다. Syntax
보기 현재 생성된 이벤트를 입력한 후 이벤트 생성 xxxG
이벤트의 상태 정보를 보려면 mysql.event 또는 information_schema.events를 보거나 현재 DB로 전환하여 show events를 실행하면 됩니다. 세 가지 내용은 기본적으로 동일합니다. information_schema는 데이터를 복사할 수 없으며, 읽기 쉽게 하기 위해 다음 이름과 시작 시간을 변경했습니다.
EVENT_CATALOG:
EVENT_SCHEMA:
이벤트가 위치한 스키마EVENT_NAME: 이벤트 이름
DEFINER: 이벤트의 정의자가 결과와 일치합니다. 이 이벤트를 정의할 때 기본적으로 selectcurrent_user() 사용자에게
super권한이 있는 경우 다른 사용자 TIME_ZONE: 이벤트가 사용하는 시간대, 기본값은 시스템이므로 수정하지 않는 것이 좋습니다
EVENT_BODY: 일반적으로 SQL이므로 걱정하지 마세요.
EVENT_DEFINITION: 이벤트의 내용은 insert 등의 특정 SQL일 수도 있고, 호출일 수도 있습니다.저장 프로시저의 동작
EVENT_TYPE: 이 매개변수는 정의할 때 지정됩니다. RECURRING과 ONE TIME, RECURRING이 반복적으로 실행됨을 나타냅니다. 조건이 충족되는 한 ONE TIME은 한 번만 호출됩니다.
EXECUTE_AT: 은 RECURRING인 경우 일회성 이벤트에 유효합니다. 유형 이벤트는 일반적으로 NULL
이며 이벤트의 예상 실행 시간을 나타냅니다.INTERVAL_VALUE: 은 RECURRING 유형 이벤트에 유효하며 실행을 나타냅니다. 간격 길이
INTERVAL_FIELD: 는 RECURRING 유형 이벤트에 유효하며 실행 간격 단위를 나타내며 일반적으로 SECOND, DAY 및 기타 값을 나타냅니다. 생성 구문을 참조하세요.
SQL_MODE: 현재 이벤트에서 사용되는 SQL_MODE
STARTS: 는 RECURRING에 유효합니다. 이벤트가 시작됨을 나타내는 이벤트 유형 실행이 시작되는 시점은 일회성 EXECUTE_AT 함수와 유사합니다. NULL이면 조건이 만족되는 즉시 실행이 시작된다는 의미
ENDS: 은 RECURRING 유형 이벤트에 유효하며 이벤트가 더 이상 실행되지 않는 시점을 나타냅니다. NULL이면 절대 중지되지 않습니다.
상태: 에는 일반적으로 ENABLED, DISABLED 및 SLAVESIDE_DISABLED의 세 가지 값이 있습니다. ENABLED는 해당 이벤트가 다른 조건을 충족하는 한 실행된다는 의미입니다. DISABLED 상태가 변경되면 실행되지 않습니다. SLAVESIDE_DISABLED는 슬레이브 라이브러리에서 이벤트가 실행되지 않음을 의미합니다. 슬레이브 라이브러리에서는 어떤 형태의 이벤트도 실행하지 않도록 특별히 주의해야 합니다. 메인 라이브러리에서 한 번 실행하고 슬레이브 라이브러리에 복사한 다음 슬레이브 라이브러리에서 다시 실행하면 일반적으로 데이터가 일치하지 않기 때문입니다. 말하자면, 슬레이브 라이브러리에서 이벤트를 비활성화하면 됩니다. 메인 스위치인 event_scheduler를 켜기만 하면 됩니다.
ON_COMPLETION: PRESERVE와 NOT PRESERVE, PRESERVE의 두 가지 값만 있습니다.
CREATED: 이벤트 생성 시간
LAST_ALTERED: 이벤트가 마지막으로 수정된 시간
LAST_EXECUTED: 이벤트의 마지막 실행 시간입니다. NULL이면
EVENT_COMMENT: 해당 이벤트의 댓글 정보입니다.
ORIGINATOR: 현재 이벤트가 생성되었을 때 SLAVESIDE_DISABLED와 같은 마스터-슬레이브 처리에 사용되는 서버 IDCHARACTER_SET_CLIENT: 이벤트가 생성될 때 클라이언트문자 집합, 즉 , Character_set_client
COLLATION_CONNECTION: 이벤트 생성 시 연결 문자 확인 규칙, 즉 collation_connectionDATABASE_COLLATION: 이벤트 생성 시 데이터베이스 문자 집합 확인 규칙EVENT 권한 관리
1 event_scheduler 설정시스템 변수, super_priv 권한이 필요합니다
2 이벤트 생성, 수정, 삭제에는 EVENT 권한이 필요합니다. 스키마 수준의 사용자3 해당 이벤트의 특정 내용에 해당하며, 해당 권한이 필요합니다. 예를 들어, 이벤트에서 특정 테이블에삽입 연산이 있는 경우 사용자는 해당 테이블에 대해 삽입 연산을 수행해야 하며, 그렇지 않으면 LAST_EXECUTED는 항상 NULL 상태가 됩니다
EVENT Query
DB 시작 이후 이벤트 관련 정보 통계를 보려면 다음 명령어를 사용하세요.mysql> showglobal status like '%event%'; +--------------------------+-------+ |Variable_name | Value | +--------------------------+-------+ |Com_alter_event | 0 | |Com_create_event | 2 | |Com_drop_event | 2 | |Com_show_binlog_events | 0 | |Com_show_create_event | 191 | |Com_show_events | 40 | |Com_show_relaylog_events | 0 | +--------------------------+-------+ 7 rows in set(0.00 sec)
사용법 제안
1 메인 데이터베이스가 실행된 경우 슬레이브 데이터베이스는 이벤트가 실행되지 않도록 해야 합니다(슬레이브에서 의도적으로 이벤트를 생성하지 않는 한) 2 생성, 삭제 및 기타 작업은 mysql.event 테이블을 직접 조작하는 것이 엄격히 금지되어 있지만 create와 같은 형식적인 구문을 통해 구현됩니다. 그렇지 않으면 메타데이터 혼란이 발생하고 이벤트가 실행되지 않거나 이벤트가 실행되지 않는 등 설명할 수 없는 다양한 문제가 발생합니다. 반복적으로 실행됩니다. 이때, 일반적으로 DB를 재시작해야만 문제가 해결됩니다. 3 생성된 이벤트에 대규모 데이터 변경이 있는 경우, 기존 네트워크 서비스에 영향을 미치지 않도록 충분한 테스트를 거쳐야 합니다4 해당 이벤트와 함께 DB를 백업해야 하는 경우 , mysqldump --event 매개변수시 추가해야 합니다.
위 내용은 mysql 이벤트 이벤트 스케줄러의 그래픽 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!