Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung des grafischen Codes des MySQL-Event-Event-Planers

Detaillierte Erläuterung des grafischen Codes des MySQL-Event-Event-Planers

黄舟
黄舟Original
2017-03-29 13:17:241485Durchsuche

Der Editor unten zeigt Ihnen ein alltägliches MySQL-Ereignis-EreignisScheduler (muss gelesen werden). Ich finde es ziemlich gut, also teile ich es jetzt mit dir und gebe es als Referenz. Lass uns dem Herausgeber folgen und einen Blick darauf werfen.

Übersicht

MySQL verfügt auch über einen eigenen Ereignisplaner, der einfach als Crontab-Job von Linux verstanden werden kann, aber für SQL-Anwendungen sind seine Funktionen umfassender und Ich persönlich habe das Gefühl, dass es die DB-Leistung beeinträchtigen und das Debuggen erschweren kann, wenn zu viele davon erstellt werden.

Der Hauptinhalt von MySQL Event Scheduler

HauptschalterDer Parameter event_scheduler ist der Hauptschalter des Ereignisplaners, es ist gut, ihn auf ON oder OFF zu stellen empfohlen. Auf deaktiviert setzen, wenn auf EIN eingestellt, Prozess anzeigen

Liste

kann den Thread sehen

Detaillierte Erläuterung des grafischen Codes des MySQL-Event-Event-Planers
Erstellen, ändern, anzeigen usw. Syntax

Informationen zum Erstellen und Ändern von Ereignissen finden Sie hier. Die spezifische Bedeutung finden Sie in der folgenden Einführung in die Ereignisinformationstabelle Link zum offiziellen Website-Dokument: http://dev.mysql.com/doc/refman/5.6/en/create-event.html

Detaillierte Erläuterung des grafischen Codes des MySQL-Event-Event-Planers
Sehen Sie sich das an Erstelltes Ereignis. Nach Eingabe der aktuellen Datenbank wird „Ereignis erstellen xxxG“ angezeigt

Detaillierte Erläuterung des grafischen Codes des MySQL-Event-Event-Planers


Informationsabfrage und Bedeutung des EreignissesUm die Statusinformationen eines Ereignisses anzuzeigen, können Sie mysql.event oder information_schema.events anzeigen oder einfach zur aktuellen Datenbank wechseln und Show-Ereignisse ausführen. Die Inhalte der drei sind grundsätzlich gleich. information_schema kann die Daten nicht kopieren und die folgenden Namen und Startzeiten wurden zur besseren Lesbarkeit geändert. Die Informationen in information_schema.events werden beispielhaft erläutert

Detaillierte Erläuterung des grafischen Codes des MySQL-Event-Event-Planers

EVENT_CATALOG: ist im Allgemeinen def, unabhängig von

EVENT_SCHEMA: Das Schema, in dem sich das Ereignis befindet

EVENT_NAME: Der Name des Ereignisses

DEFINER: Der Definierer von Ereignis stimmt mit dem Ergebnis überein von selectcurrent_user() standardmäßig bei der Definition dieses Ereignisses. Wenn der Benutzer über super-Berechtigungen verfügt, kann er als anderer Benutzer

TIME_ZONE: Die vom Ereignis verwendete Zeitzone, der Standardwert ist System, es wird empfohlen, sie nicht zu ändern

EVENT_BODY:

Es ist normalerweise SQL, machen Sie sich darüber keine Sorgen

EVENT_DEFINITION:

Der Inhalt des Ereignisses kann ein bestimmtes SQL sein, z. B. ein Einfügen, oder es kann ein Aufruf seinVorgang einer gespeicherten Prozedur

EVENT_TYPE:

Dieser Parameter ist wichtiger. Er wird bei der Definition angegeben. Er hat zwei Werte: RECURRING und ONE TIME, RECURRING. Gibt an, dass er wiederholt ausgeführt wird solange die Bedingungen erfüllt sind und ONE TIME nur einmal aufgerufen wird

EXECUTE_AT:

gilt für einmalige Ereignisse, wenn es sich um RECURRING handelt Typereignis ist im Allgemeinen NULL und gibt die geschätzte Ausführungszeit des Ereignisses an.

INTERVAL_VALUE:

gilt für Ereignisse vom Typ RECURRING und gibt die Ausführung an Intervalllänge

INTERVAL_FIELD:

gilt für Ereignisse vom Typ RECURRING und gibt die Einheit des Ausführungsintervalls an, normalerweise SECOND, DAY und andere Werte. Bitte beachten Sie die Erstellungssyntax

SQL_MODE:

SQL_MODE, der vom aktuellen Ereignis verwendet wird

STARTS:

gilt für RECURRING Geben Sie Ereignisse ein, die angeben, dass ein Ereignis ab beginnt. Der Zeitpunkt, zu dem die Ausführung beginnt, ähnelt der einmaligen Funktion EXECUTE_AT. Wenn es NULL ist, bedeutet dies, dass die Ausführung beginnt, sobald die Bedingungen erfüllt sind

ENDE: gilt für Ereignisse vom Typ RECURRING und gibt den Zeitpunkt an, nach dem ein Ereignis nicht mehr ausgeführt wird. Wenn es NULL ist, wird es niemals gestoppt

STATUS: hat im Allgemeinen drei Werte: ENABLED, DISABLED und SLAVESIDE_DISABLED, wobei ENABLED die Aktivierung dieses Ereignisses bedeutet, das ausgeführt wird, solange es andere Bedingungen erfüllt, die das Ereignis erfüllt nicht ausgeführt werden, wenn der DISABLED-Status geändert wird. SLAVESIDE_DISABLED bedeutet, dass das Ereignis nicht auf der Slave-Bibliothek ausgeführt wird. Es muss besonders darauf geachtet werden, keinerlei Ereignis in der Slave-Bibliothek auszuführen, denn wenn die Hauptbibliothek es einmal ausführt, es in die Slave-Bibliothek kopiert und es dann erneut von der Slave-Bibliothek aus ausführt, sind die Daten inkonsistent. Im Allgemeinen deaktivieren Sie einfach das Ereignis in der Slave-Bibliothek. Schalten Sie einfach den Hauptschalter event_scheduler ein.

ON_COMPLETION: Es gibt nur zwei Werte, PRESERVE und NOT PRESERVE, PRESERVE

CREATED: Die Erstellungszeit des Ereignisses

LAST_ALTERED: Die Zeit, zu der das Ereignis zuletzt geändert wurde

LAST_EXECUTED: Die letzte Ausführungszeit des Ereignisses. Wenn es NULL ist, bedeutet dies, dass es nie ausgeführt wurde

EVENT_COMMENT: Die Kommentarinformationen zum Ereignis

ORIGINATOR: Server-ID, als das aktuelle Ereignis erstellt wurde, wird für die Master-Slave-Verarbeitung verwendet, z. B. SLAVESIDE_DISABLED

CHARACTER_SET_CLIENT: Client-

Zeichensatz, wenn das Ereignis erstellt wurde , Character_set_client

COLLATION_CONNECTION: wenn das Ereignis erstellt wird. Die Regeln zur Überprüfung des Verbindungszeichens, nämlich collation_connection

DATABASE_COLLATION: Regeln zur Überprüfung des Datenbankzeichensatzes, wenn das Ereignis erstellt wird

EVENT-Berechtigungsverwaltung

1 Event_Scheduler festlegen

Systemvariable, super_priv-Berechtigung ist erforderlich

2 Das Erstellen, Ändern und Löschen von Ereignissen erfordert die EVENT-Berechtigung von der Benutzer, der sich auf Schemaebene befindet

3 Entspricht dem spezifischen Inhalt der Veranstaltung und erfordert entsprechende Berechtigungen. Wenn es beispielsweise einen

Einfügevorgang für eine bestimmte Tabelle im Ereignis gibt, muss der Benutzer einen Einfügevorgang für die Tabelle ausführen, andernfalls befindet sich LAST_EXECUTED immer im Status NULL

EREIGNIS-Abfrage

Verwenden Sie den folgenden Befehl, um ereignisbezogene Informationsstatistiken seit dem DB-Start anzuzeigen

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)

Verwendungsvorschläge

1 Wenn die Hauptbibliothek ausgeführt wurde, muss die Slave-Bibliothek sicherstellen, dass das Ereignis nicht ausgeführt wird (es sei denn, das Ereignis wird absichtlich auf dem Slave erstellt)

2 Eine direkte Manipulation von MySQL wie Erstellen und Löschen ist strengstens untersagt. Die Ereignistabelle wird durch formale Syntax wie Erstellen implementiert. Andernfalls kommt es zu Metadatenverwirrungen und es treten verschiedene unerklärliche Probleme auf, z. B. wenn Ereignisse nicht ausgeführt werden wiederholt ausgeführt. Zu diesem Zeitpunkt kann das Problem normalerweise nur durch einen Neustart der Datenbank behoben werden.

3 Wenn das erstellte Ereignis massive Datenänderungen beinhaltet, müssen ausreichende Tests durchgeführt werden, um sicherzustellen, dass es den vorhandenen Netzwerkdienst nicht beeinträchtigt.

4 Wenn Sie die Datenbank mit dem Ereignis sichern müssen , Sie müssen es hinzufügen, wenn mysqldump --event Parameter

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des grafischen Codes des MySQL-Event-Event-Planers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn