Heim > Datenbank > MySQL-Tutorial > Hauptteil

Detaillierte Erläuterung der Beispiele für neue MySQL-Funktionen (Ereignisplaner).

零下一度
Freigeben: 2017-05-09 12:00:49
Original
1277 Leute haben es durchsucht

Übersicht

EventScheduler ist eine neue Funktion , die nach MySQL5.1 hinzugefügt wurde und die Datenbank gemäß A festlegen kann Der benutzerdefinierte Zeitraum löst einen bestimmten Vorgang aus, der als Zeit--Trigger verstanden werden kann, und ähnelt <a href="http://www.php.cn/wiki/1497.html%20" target="_blank">linux</a>Die Taskplaner-Crontab unter dem System oder ähnlich der geplanten Aufgabe unter dem Fenster. Erwähnenswert ist, dass der Ereignisplaner von MySQL eine Aufgabe pro Sekunde ausführen kann, während die geplanten Aufgaben des Betriebssystems (wie CRON unter Linux oder die Aufgabenplanung unter Windows) nur eine Aufgabe pro Minute ausführen können. 类似于<a href="http://www.php.cn/wiki/1497.html" target="_blank">linux</a>系统下面的任务调度器crontab,或者类似与window下面的计划任务

Überprüfen Sie, ob die Ereignisfunktion aktiviert ist

Stellen Sie bei Verwendung der Ereignisfunktion zunächst sicher, dass Ihre MySQL-Version 5.1 oder höher ist, und überprüfen Sie dann Ihren MySQL-Server Ob das Ereignis aktiviert ist.

Um zu überprüfen, ob das Ereignis aktiviert ist, verwenden Sie den folgenden Befehl:

#方式一
SHOW VARIABLES LIKE &#39;event_scheduler&#39;;
#方式二
SELECT @@event_scheduler;
#方式三
SHOW PROCESSLIST;

#查看事件状态
SHOW EVENTS;
Nach dem Login kopieren
Wenn Sie sehen, dass „event_scheduler“ aktiviert ist oder „event_scheduler“-Informationen in PROCESSLIST angezeigt werden, wurde das Ereignis aktiviert. Wenn es als „Aus“ angezeigt wird oder die event_scheduler-Informationen nicht in PROCESSLIST sichtbar sind, bedeutet dies, dass das Ereignis nicht aktiviert ist und wir es aktivieren müssen.

Ereignisfunktion aktivieren

Methode 1. Dynamische Parameter ändern

SET GLOBAL event_scheduler = ON;
Nach dem Login kopieren
Nach dem Ändern dieses Parameters dauert es Wirkung sofort, aber ein Neustart von MySQL hat es wiederhergestellt, das heißt, die Einstellungen können sich nicht über Neustarts erstrecken.


Methode 2. Ändern Sie die Konfigurationsdatei und starten Sie dann neu Fügen Sie den folgenden Inhalt zum Abschnitt [mysqld] in my.cnf hinzu und starten Sie dann mysql neu.

event_scheduler=ON;
Nach dem Login kopieren
Ein für alle Mal benötigen Sie die Erlaubnis, die Datenbankkonfiguration zu ändern.

Methode 3: Fügen Sie „–event_scheduler=1“ direkt zum Startbefehl hinzu

mysqld ... --event_scheduler=ON
Nach dem Login kopieren

Ereignissyntax

1. Ereignis erstellen

CREATE
    [DEFINER = { user | CURRENT_USER }]
    EVENT
    [IF NOT EXISTS]
    event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE | DISABLE ON SLAVE]
    [COMMENT &#39;comment&#39;]
    DO event_body;

schedule:
    AT timestamp [+ INTERVAL interval] ...
     | EVERY interval
    [STARTS timestamp [+ INTERVAL interval] ...]
    [ENDS timestamp [+ INTERVAL interval] ...]
interval:
  quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
              WEEK | SECOND | YEAR_MONTH | DAY_HOUR |
DAY_MINUTE |DAY_SECOND | HOUR_MINUTE |
HOUR_SECOND | MINUTE_SECOND}
Nach dem Login kopieren
DEFINER: Definieren Sie den Benutzer, der die Berechtigungen überprüft, wenn das Ereignis ausgeführt wird.

ON SCHEDULE-Zeitplan: Definieren Sie die Ausführungszeit und das Intervall.
ON COMPLETE [NOT] PRESERVE: Definieren Sie, ob das Ereignis einmal oder dauerhaft ausgeführt wird. Der Standardwert ist eine einzige Ausführung, also NICHT PRESERVE.
ENABLE |. DISABLE ON SLAVE: Definieren Sie, ob das Ereignis nach seiner Erstellung aktiviert oder deaktiviert wird und ob es von oben deaktiviert wird. Wenn der Slave-Server die Anweisung des Erstellungsereignisses automatisch auf dem Master synchronisiert, wird DISABLE ON SLAVE automatisch hinzugefügt.
COMMENT 'Kommentar':
Kommentar, der das Ereignis definiert.

2. Ereignis ändern

ALTER
    [DEFINER = { user | CURRENT_USER }]
    EVENT event_name
    [ON SCHEDULE schedule]
    [ON COMPLETION [NOT] PRESERVE]
    [RENAME TO new_event_name]
    [ENABLE | DISABLE | DISABLE ON SLAVE]
    [COMMENT &#39;comment&#39;]
    [DO event_body]
Nach dem Login kopieren

3. Syntax von Ereignis löschen

DROP EVENT [IF EXISTS] event_name;
Nach dem Login kopieren

Beispiele für die Verwendung von Ereignissen

1. Ereignisse erstellen

Beispiel 1Zeitgesteuert, um Nachrichten alle zu senden 3 Sekunden
Daten in Tabelle test2 einfügen

create event event_insert_t2
on schedule every 3 second
on completion preserve
do insert into test2(department,time_v) value(&#39;1&#39;,now());
Nach dem Login kopieren
Ausführungsergebnis


Detaillierte Erläuterung der Beispiele für neue MySQL-Funktionen (Ereignisplaner).

Ereignisausführungsergebnis

Beispiel 2Erstellen Sie ein Ereignis, das die Testtabellendaten nach 10 Minuten löscht

CREATE EVENT IF NOT EXISTS event_truncate_test2
ON SCHEDULE
AT CURRENT_TIMESTAMP + INTERVAL 10 MINUTE
DO TRUNCATE TABLE test2;
Nach dem Login kopieren

Beispiel 3Erstellen Sie ein Ereignis im 17.04.2015 Das Ereignis des Löschens der Testtabellendaten um 14:42:00 Uhr

DROP EVENT IF EXISTS event_truncate_test2;
CREATE EVENT event_truncate_test2
ON SCHEDULE
AT TIMESTAMP &#39;2015-04-17 14:42:00&#39;
DO TRUNCATE TABLE test2;
Nach dem Login kopieren

Beispiel 4Beginnen Sie nach 5 Tagen mit dem Einfügen von Daten in die Tabelle test2 zu einer geplanten Zeit von 3 Sekunden jeden Tag für einen Monat. Stoppen Sie dann die Ausführung

CREATE EVENT IF NOT EXISTS event_truncate_test2
ON SCHEDULE EVERY 3 SECOND
STARTS CURRENT_TIMESTAMP + INTERVAL 5 day
ENDS CURRENT_TIMESTAMP + INTERVAL  1 month
ON COMPLETION PRESERVE
DO INSERT INTO test2(department,time_v) VALUES(&#39;1&#39;,NOW());
Nach dem Login kopieren

Ereignisbeispiel ändern

Beispiel 1 Schließen Sie das Ereignis vorübergehend.

alter event event_insert_t2 disable;
Nach dem Login kopieren
Andere ähnliche Erstellungsereignisse.

Beispiel für ein Ereignis löschen

DROP EVENT IF EXISTS event_insert_t2;
Nach dem Login kopieren
Der Ereignisaufruf

gespeicherte Prozedur oder Funktion ähnelt einem normalen Aufruf.

Vorteile, Nachteile und Einsatzszenarien von Events

  1. Vorteile

  2. Geplante Aufgaben werden einheitlich verwaltet Vermeiden Sie durch DBA die Bereitstellung auf Betriebssystemebene.

  3. Reduzieren Sie das Risiko von Fehlbedienungen durch Systemadministratoren.

  4. Förderlich für die spätere Verwaltung und Wartung.

  5. Nachteile

  6. Stellen Sie den Scheduler sorgfältig auf ausgelasteten und leistungsintensiven Datenbanken bereit und aktivieren Sie ihn.

  7. Zu komplexe Verarbeitungen lassen sich besser über Programme umsetzen.

  8. Das Öffnen und Schließen von Ereignissen erfordert Superuser-Rechte.

  9. Anwendungsszenarien

    Geeignet für die regelmäßige Erfassung statistischer Informationen, die regelmäßige Löschung historischer Daten, regelmäßige Datenbankprüfungen usw.

[Verwandte Empfehlungen]

1.

Kostenloses MySQL-Online-Video-Tutorial

2

3. Boolean Education Yan Shiba MySQL-Einführungsvideo-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für neue MySQL-Funktionen (Ereignisplaner).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!