>  기사  >  데이터 베이스  >  mysql 이벤트 이벤트 스케줄러의 그래픽 코드에 대한 자세한 설명

mysql 이벤트 이벤트 스케줄러의 그래픽 코드에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-29 13:17:241436검색

아래 편집기는 일반적인 mysql 이벤트 이벤트스케줄러(필독) 꽤 좋은 것 같아서 지금 공유해서 참고용으로 올려보겠습니다.

개요

MySQL에도 자체 이벤트 스케줄러가 있는데, 이는 간단히

linux의 crontab 작업으로 이해될 수 있지만 SQL 응용 프로그램의 경우 그 기능이 더 완전하고 개인적으로 너무 많이 생성하면 DB 성능에 영향을 미치고 디버깅이 어려울 수 있다고 생각합니다. MySQL 이벤트 스케줄러의 주요 내용

마스터 스위치

event_scheduler 매개변수는 이벤트 스케줄러의 마스터 스위치로 일반적으로 ON 또는 OFF로 설정하는 것이 좋습니다. 비활성화로 설정하는 것이 좋습니다. ON으로 설정하면 프로세스목록

을 볼 수 있습니다

mysql 이벤트 이벤트 스케줄러의 그래픽 코드에 대한 자세한 설명생성, 수정, 보기 등이 가능합니다. Syntax

이벤트 생성 및 수정 방법은 여기에 설명이 없습니다. 구체적인 의미는 다음 소개를 참조하세요. 공식 웹사이트 문서 링크 http://dev.mysql.com/doc/.refman/5.6/en/create-event.html

mysql 이벤트 이벤트 스케줄러의 그래픽 코드에 대한 자세한 설명보기 현재 생성된 이벤트를 입력한 후 이벤트 생성 xxxG

mysql 이벤트 이벤트 스케줄러의 그래픽 코드에 대한 자세한 설명

이벤트 정보 조회 및 의미


이벤트의 상태 정보를 보려면 mysql.event 또는 information_schema.events를 보거나 현재 DB로 전환하여 show events를 실행하면 됩니다. 세 가지 내용은 기본적으로 동일합니다. information_schema는 데이터를 복사할 수 없으며, 읽기 쉽게 하기 위해 다음 이름과 시작 시간을 변경했습니다.

mysql 이벤트 이벤트 스케줄러의 그래픽 코드에 대한 자세한 설명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와 같은 마스터-슬레이브 처리에 사용되는 서버 ID

CHARACTER_SET_CLIENT: 이벤트가 생성될 때 클라이언트

문자 집합, 즉 , Character_set_client

COLLATION_CONNECTION: 이벤트 생성 시 연결 문자 확인 규칙, 즉 collation_connection

DATABASE_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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.