Eventos MySQL

Eventos MySQL, comumente conhecidos como eventos agendados, são tarefas executadas de acordo com um cronograma especificado.

Os eventos MySQL são semelhantes aos cron jobs no Linux ou aos agendadores de tarefas no Windows, fornecendo uma ferramenta para automatizar tarefas recorrentes no servidor de banco de dados MySQL.

Por exemplo, você pode criar um evento para otimizar todas as tabelas em um banco de dados, agendando-o para ser executado à 1h todos os domingos.

Os eventos também são conhecidos como “gatilhos temporais” porque são acionados pelo tempo, e não pelas alterações feitas nas tabelas como os gatilhos .

Para agendar e executar eventos, o MySQL usa um agendador de eventos que monitora continuamente os eventos e garante sua execução oportuna.

Ciclo de vida de eventos MySQL

Este é o ciclo de vida típico de um evento:

  • Criação – MySQL permite que você crie um evento usando a CREATE EVENTinstrução. Assim como outros objetos de banco de dados, o MySQL armazena eventos no agendador de eventos.
  • Ativação – após definir um evento, você precisa ativá-lo explicitamente usando a ALTER EVENT ... ENABLEinstrução.
  • Modificação – Você pode modificar um evento usando a ALTER EVENTinstrução para alterar atributos como o agendamento ou as instruções SQL a serem executadas.
  • Desativação – Para interromper o evento, você pode desativá-lo usando o ALTER EVENT ... DISABLEextrato.
  • Remoção – Se um evento não estiver mais em uso, você poderá removê-lo usando a DROP EVENTinstrução.

Configuração do agendador de eventos MySQL

O MySQL usa um thread especial chamado thread do agendador de eventos para executar todos os eventos agendados. Você pode visualizar o status do thread do agendador de eventos executando o SHOW PROCESSLISTcomando:

SHOW PROCESSLIST;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----+-----------------+-----------------+------+---------+------+-----------------------------+------------------+
| Id | User            | Host            | db   | Command | Time | State                       | Info             |
+----+-----------------+-----------------+------+---------+------+-----------------------------+------------------+
|  5 | event_scheduler | localhost       | NULL | Daemon  |    0 | Waiting for next activation | NULL             |
|  9 | root            | localhost:53911 | mydb | Query   |    0 | init                        | SHOW PROCESSLIST |
+----+-----------------+-----------------+------+---------+------+-----------------------------+------------------+
2 rows in set (0.00 sec)Linguagem de código:  PHP  ( php )

A saída mostra que o agendador de eventos está em execução no momento.

Se o agendador de eventos não estiver habilitado, você pode definir a event_schedulervariável do sistema como ONpara habilitá-lo e iniciá-lo:

SET GLOBAL event_scheduler = ON;Linguagem de código:  PHP  ( php )

Para desabilitar e parar o thread do agendador de eventos, você pode definir event_scheduler a variável do sistema como OFF:

SET GLOBAL event_scheduler = OFF;Linguagem de código:  PHP  ( php )

Casos de uso de eventos MySQL

Na prática, você encontrará eventos úteis nos seguintes casos:

Backup de dados

Os eventos podem ser usados ​​para automatizar backups regulares de dados para garantir a segurança e a capacidade de recuperação de dados críticos.

Limpeza de dados

Os eventos permitem agendar tarefas para remover automaticamente dados desatualizados, otimizando o desempenho do banco de dados.

Comunicando

Os eventos permitem gerar relatórios periódicos ou análises estatísticas fora dos horários de pico.

Tarefas de manutenção

Os eventos permitem automatizar tarefas de manutenção de rotina, como reconstrução de índices ou otimização de tabelas, para manter o banco de dados funcionando com eficiência.

Tutoriais de eventos MySQL

  • Criar Evento – mostra como usar a instrução CREATE EVENT para criar um novo evento no banco de dados.
  • Alter Event – ​​aprenda como modificar o evento usando a instrução ALTER EVENT.
  • Drop Event – ​​orienta você sobre como remover um evento usando a instrução DROP EVENT.
  • Mostrar eventos – lista os eventos em um banco de dados específico.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *