Maison  >  Article  >  base de données  >  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

王林
王林avant
2020-01-21 20:31:112107parcourir

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';

2. Activez le planificateur d'événements

set global event_scheduler = on;

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

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 }

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;

Ouvrir l'événement

ALTER EVENT event_name ENABLE;

6.

DROP EVENT [IF EXISTS ] event_name;

7. Afficher tous les événements

SHOW EVENTS;

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;

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());

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer