Heim  >  Artikel  >  Datenbank  >  Erklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert

Erklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert

王林
王林nach vorne
2020-01-21 20:31:112023Durchsuche

Erklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert

Seit MySQL 5.1.6 wurde eine ganz besondere Funktion hinzugefügt – der Ereignisplaner, mit dem bestimmte spezifische Aufgaben nach einem Zeitplan ausgeführt werden können (z. B. Datensätze löschen, Daten löschen). Aggregation, Datensicherung usw.), um die Arbeit zu ersetzen, die nur durch geplante Aufgaben des Betriebssystems ausgeführt werden konnte.

Was noch erwähnenswert ist, ist, dass der Ereignisplaner von MySQL jede Sekunde genau eine Aufgabe ausführen kann, während die geplanten Aufgaben des Betriebssystems (wie der Cron von Linux oder der Aufgabenplan unter Windows) nur jede Minute genau ausführen können . Es eignet sich sehr gut für einige Anwendungen, die hohe Echtzeitdaten erfordern (z. B. Aktien, Quoten, Ergebnisse usw.).

Ereignisplaner werden manchmal als temporäre Auslöser bezeichnet, da Ereignisplaner auf der Grundlage eines bestimmten Zeitraums zur Ausführung bestimmter Aufgaben ausgelöst werden, während Auslöser auf der Grundlage einer bestimmten Tabelle ausgelöst werden Unterschied liegt.

1. Überprüfen Sie, ob

> show variables like 'event_scheduler';

2. Schalten Sie den Ereignisplaner ein

set global event_scheduler = on;

Die Einstellung hier, wenn MySQL neu startet Anschließend wird es automatisch wieder geschlossen. Wenn Sie es ständig aktivieren müssen, müssen Sie es in my.ini wie folgt konfigurieren:

(empfohlenes Lernvideo-Tutorial: MySQL-Video-Tutorial)

event_scheduler = on

drei, Ereignissyntax erstellen

CREATE EVENT [IF NOT EXISTS ] event_name
ON SCHEDULE schedule
[ ON COMPLETION [ NOT ] PRESERVE ]
[ ENABLE | DISABLE ]
[ COMMENT '注释' ]
DO SQL语句;
  
schedule : AT TIMESTAMP [+ INTERVAL interval ] | EVERY interval [ STARTS TIMESTAMP ] [ ENDS TIMESTAMP ]
interval : quantity { YEAR | QUARTER | MONTH | DAY |
           HOUR | MINUTE | WEEK | SECOND |
           YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND |
           HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND }

event_name: Ereignisname, maximale Länge 64 Zeichen.

Zeitplan: Ausführungszeit.

[ BEI ABSCHLUSS [ NICHT ] ERHALTEN ]: Ob das Ereignis wiederverwendet werden muss.

[ ENABLE |. DISABLE ]: Das Ereignis wird ein- oder ausgeschaltet.

4. Veranstaltung schließen

ALTER EVENT event_name DISABLE;

5. Veranstaltung öffnen

ALTER EVENT event_name ENABLE;

6. Veranstaltung löschen

DROP EVENT [IF EXISTS ] event_name;

Alle Ereignisse anzeigen

SHOW EVENTS;

8. Ereignisbeispiele

Wir erstellen zunächst ein einfaches The Die Testtabelle wird zum Testen von

CREATE TABLE `test` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `now` datetime DEFAULT NULL COMMENT '时间',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

verwendet. Es gibt zwei Ereignistypen: einer ist intervallauslösend und der andere wird zu einem bestimmten Zeitpunkt ausgelöst.

Wir fügen jede Sekunde einen Datensatz in die Testtabelle ein:

DROP EVENT IF EXISTS event_test;
CREATE EVENT event_test
ON SCHEDULE EVERY 1 SECOND STARTS '2017-08-22 11:57:00' ENDS '2017-08-22 12:00:00'
ON COMPLETION PRESERVE
ENABLE
COMMENT '每隔一秒向test表插入记录'
DO INSERT INTO test VALUES(NULL, now());

Das Ergebnis ist wie in der Abbildung dargestellt:

Erklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert

Tutorials zu verwandten Artikeln Empfohlen: MySQL-Tutorial

Das obige ist der detaillierte Inhalt vonErklären Sie anhand von Beispielen, wie MySQL geplante Aufgaben implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen