Maison > base de données > tutoriel mysql > Expliquez comment MySQL implémente les tâches planifiées à travers des exemples

Expliquez comment MySQL implémente les tâches planifiées à travers des exemples

王林
Libérer: 2020-01-21 20:31:11
avant
2139 Les gens l'ont consulté

Expliquez comment MySQL implémente les tâches planifiées à travers des exemples

Depuis MySQL 5.1.6, une fonctionnalité très distinctive a été ajoutée - le planificateur d'événements, qui peut être utilisé pour effectuer certaines tâches spécifiques sur une base planifiée (par exemple : suppression d'enregistrements, données agrégation, sauvegarde de données, etc.) pour remplacer le travail qui ne pouvait être effectué que par les tâches planifiées du système d'exploitation.

Ce qui mérite d'être mentionné, c'est que le planificateur d'événements de MySQL peut être précis pour exécuter une tâche chaque seconde, tandis que les tâches planifiées du système d'exploitation (telles que le cron de Linux ou la planification des tâches sous Windows) ne peuvent être précises que pour être exécutées toutes les minutes. . Il est très adapté à certaines applications nécessitant des données en temps réel élevées (telles que les actions, les cotes, les scores, etc.).

Les planificateurs d'événements sont parfois appelés déclencheurs temporaires, car les planificateurs d'événements sont déclenchés en fonction d'une période de temps spécifique pour effectuer certaines tâches, tandis que les déclencheurs sont déclenchés en fonction d'une certaine table. L'événement généré est déclenché, et c'est ici. la différence réside.

1. Vérifiez si

> show variables like 'event_scheduler';
Copier après la connexion

2. Activez le planificateur d'événements

set global event_scheduler = on;
Copier après la connexion

Le paramètre ici, lorsque MySQL redémarre. Ensuite, il se refermera automatiquement. Si vous devez l'activer tout le temps, vous devez le configurer dans my.ini comme suit :

(tutoriel vidéo d'apprentissage recommandé : tutoriel vidéo mysql)

event_scheduler = on
Copier après la connexion

trois , créez la syntaxe de l'événement

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 }
Copier après la connexion

event_name : nom de l'événement, longueur maximale de 64 caractères.

calendrier : délai d'exécution.

[ ON COMPLETION [ NOT ] PRESERVE ] : indique si l'événement doit être réutilisé.

[ ENABLE | DISABLE ] : L'événement est activé ou désactivé.

4. Fermer l'événement

ALTER EVENT event_name DISABLE;
Copier après la connexion

Ouvrir l'événement

ALTER EVENT event_name ENABLE;
Copier après la connexion

6.

DROP EVENT [IF EXISTS ] event_name;
Copier après la connexion

7. Afficher tous les événements

SHOW EVENTS;
Copier après la connexion

8. Exemples d'événements

Nous créons d'abord un simple The. la table de test est utilisée pour tester

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;
Copier après la connexion

Il existe deux types d'événements, l'un est un déclenchement par intervalle et l'autre est déclenché à une heure précise.


Nous insérons un enregistrement dans la table de test toutes les secondes :

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());
Copier après la connexion
Le résultat est tel qu'indiqué sur la figure :

Expliquez comment MySQL implémente les tâches planifiées à travers des exemples

Tutoriels d'articles connexes Recommandé :

Tutoriel mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal