Maison > Article > base de données > Explication détaillée du code graphique du planificateur d'événements mysql
L'éditeur ci-dessous vous proposera un mysql événement événementPlanificateur (à lire absolument). Je pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un oeil.
. Présentation
MySQL possède également son propre planificateur d'événements, qui peut être simplement compris comme le travail crontab de linux, mais pour les applications SQL, ses fonctions sont plus complètes et plus facile à maintenir. Personnellement, je pense que si trop de fichiers sont créés, cela peut affecter les performances de la base de données et être difficile à déboguer
Le contenu principal du planificateur d'événements MySQLInterrupteur principal
Le paramètre event_scheduler est l'interrupteur principal du planificateur d'événements. De manière générale, il est bon de le régler sur ON ou OFF. recommandé. Réglé sur désactivé, s'il est défini sur ON, afficher le processuslist
peut voir le fil de discussionCréer, modifier, afficher, etc. Syntaxe
Voir le. événement créé. Après avoir entré la base de données actuelle, affichez créer un événement xxxG
Requête d'informations et signification de l'événement
Pour afficher les informations d'état d'un événement, vous pouvez afficher mysql.event ou information_schema.events, ou simplement passer à la base de données actuelle et exécuter les événements show, le contenu des trois est fondamentalement le même, information_schema ne peut pas copier les données, et les noms et heures de début suivants ont été modifiés pour une meilleure lecture. Les informations contenues dans information_schema.events sont expliquées à titre d'exemple
<.>
EVENT_CATALOG :
est généralement défini, quel que soit EVENT_SCHEMA :
Le schéma où se trouve l'événementEVENT_NAME :
Le nom de l'événement DEFINER : Le définisseur de
event est cohérent avec le résultat de selectcurrent_user() par défaut lors de la définition de cet événement. Si l'utilisateur dispose des autorisations super, il peut être spécifié comme autre utilisateur TIME_ZONE :
Le fuseau horaire utilisé par l'événement, la valeur par défaut est système, il est recommandé de ne pas le modifierEVENT_BODY :
C'est généralement du SQL, ne vous inquiétez pasEVENT_DEFINITION :
Le contenu de l'événement peut être un SQL spécifique tel que insert, ou il peut s'agir d'un appelOpération de procédure stockée EVENT_TYPE :
Ce paramètre est plus important Il est précisé lors de la définition Il a deux valeurs : RECURRING et ONE TIME, RECURRING Indique qu'il sera exécuté de manière répétée. tant que les conditions sont remplies, et ONE TIME ne sera appelé qu'une seule foisEXECUTE_AT :
est valable pour les événements de type ponctuel, s'il est de RÉCURRENT l'événement de type est généralementNULL, indiquant le temps d'exécution estimé de l'événement INTERVAL_VALUE :
est valable pour les événements de type RECURRING, indiquant l'exécution longueur de l'intervalleINTERVAL_FIELD :
est valide pour les événements de type RÉCURRENT, indiquant l'unité d'intervalle d'exécution, généralement SECOND, DAY et d'autres valeurs. Veuillez vous référer à la syntaxe de création.SQL_MODE :
SQL_MODE utilisé par l'événement en coursSTARTS :
est valide pour RÉCURRENT tapez events, indiquant qu'un événement commence à partir de Le moment auquel l'exécution commence est similaire à la fonction EXECUTE_AT à usage unique. S'il est NULL, cela signifie que l'exécution démarrera dès que les conditions seront rempliesENDS : est valable pour les événements de type RÉCURRENT, indiquant le moment après lequel un événement ne sera plus exécuté. S'il est NULL, il ne s'arrêtera jamais
.STATUS : a généralement trois valeurs, ENABLED, DISABLED et SLAVESIDE_DISABLED signifie l'activation de cet événement tant qu'il remplit d'autres conditions ; ne sera pas exécuté si l'état DISABLED est modifié. SLAVESIDE_DISABLED signifie que l'événement ne sera pas exécuté sur la bibliothèque esclave. Une attention particulière doit être portée à ne pas exécuter aucune forme d'événement sur la bibliothèque esclave, car si la bibliothèque principale l'exécute une fois, le copie dans la bibliothèque esclave, puis l'exécute à nouveau à partir de la bibliothèque esclave, les données seront généralement incohérentes. en parlant, désactivez simplement l'événement sur la bibliothèque esclave. Activez simplement le commutateur principal event_scheduler.
ON_COMPLETION : Il n'y a que deux valeurs, PRESERVE et NOT PRESERVE, PRESERVE
CREATED : L'heure de création de l'événement
LAST_ALTERED : L'heure à laquelle l'événement a été modifié pour la dernière fois
LAST_EXECUTED : L'heure de la dernière exécution de l'événement. S'il est NULL, cela signifie qu'il n'a jamais été exécuté.
EVENT_COMMENT : Les informations commentaires de l'événement.
ORIGINATOR : lorsque l'événement en cours a été créé, identifiant du serveur, utilisé pour le traitement maître-esclave, tel que SLAVESIDE_DISABLEDCHARACTER_SET_CLIENT : clientjeu de caractères lorsque l'événement est créé, c'est-à-dire , Character_set_client
COLLATION_CONNECTION : à la création de l'événement. Les règles de vérification des caractères de connexion, à savoir collation_connectionDATABASE_COLLATION : règles de vérification du jeu de caractères de la base de données à la création de l'événementGestion des autorisations EVENT
1 Définir event_schedulervariable système, l'autorisation super_priv est requise
2 La création, la modification et la suppression d'événements nécessitent l'autorisation EVENT de l'utilisateur, qui est au niveau du schéma3 Correspond au contenu spécifique de l'événement et nécessite les autorisations correspondantes. Par exemple, s'il y a uneopération d'insertion sur une certaine table dans l'événement, alors l'utilisateur doit effectuer une opération d'insertion sur la table, sinon LAST_EXECUTED sera toujours dans l'état NULL
Requête d'événement
Utilisez la commande suivante pour afficher les statistiques d'informations liées aux événements depuis le démarrage de la base de donnéesmysql> 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)
Suggestions d'utilisation
1 Si la bibliothèque principale a été exécutée, la bibliothèque esclave doit s'assurer que l'événement ne sera pas exécuté (sauf si l'événement est créé intentionnellement sur l'esclave)2 La manipulation directe de MySQL telle que la création et la suppression est strictement interdite. La table d'événements est implémentée via une syntaxe formelle telle que créer, sinon cela entraînerait une confusion des métadonnées et divers problèmes inexplicables se produiraient, tels que des événements non exécutés ou en cours d'exécution. exécuté à plusieurs reprises. À l’heure actuelle, le problème ne peut généralement être résolu qu’en redémarrant la base de données. 3 Si l'événement créé implique des modifications massives des données, des tests suffisants doivent être effectués pour garantir qu'il n'affecte pas le service réseau existant 4 Si vous devez sauvegarder la base de données avec l'événement , vous devez l'ajouter lorsque le paramètre mysqldump --event
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!