Kenalan dengan Event Scheduler?
Event Scheduler adalah fitur bawaan MySQL yang memungkinkan kamu untuk menjalankan query atau stored procedure secara otomatis berdasarkan jadwal yang telah ditentukan. Fitur ini sangat berguna untuk tugas-tugas rutin seperti backup database, pembersihan data lama, atau pembaruan data secara berkala.
Mengaktifkan Event Scheduler
Sebelum menggunakan Event Scheduler, pastikan fitur ini sudah aktif di MySQL kamu. Jalankan query berikut untuk memeriksa statusnya:
SHOW VARIABLES LIKE 'event_scheduler'; Jika nilai yang ditampilkan adalah OFF, aktifkan dengan menjalankan:
SET GLOBAL event_scheduler = ON; Untuk mengaktifkan secara permanen, tambahkan baris berikut pada file konfigurasi MySQL (my.ini atau my.cnf):
[mysqld] event_scheduler=ON Membuat Event Scheduler
Setelah Event Scheduler aktif, kamu dapat membuat event baru dengan sintaks berikut:
CREATE EVENT nama_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO
UPDATE tabel
SET kolom = 'nilai'
WHERE kondisi; kamu juga dapat membuat event yang berulang (recurring) dengan menggunakan EVERY:
CREATE EVENT event_harian ON SCHEDULE EVERY 1 DAY STARTS '2024-01-01 00:00:00' DO
DELETE
FROM log_table
WHERE created_at < DATE_SUB(NOW(), INTERVAL 30 DAY); Tips dan Best Practices
Berikut beberapa tips dalam menggunakan Event Scheduler:
- Beri nama yang deskriptif - Gunakan nama event yang jelas menggambarkan fungsinya, misalnya
cleanup_old_logsataudaily_backup - Gunakan IF NOT EXISTS - Tambahkan klausa ini untuk menghindari error jika event sudah ada
- Monitor event yang aktif - Jalankan
SHOW EVENTSuntuk melihat daftar event yang aktif - Disable sementara - Gunakan
ALTER EVENT nama_event DISABLEuntuk menonaktifkan event tanpa menghapusnya - Error handling - Gunakan stored procedure dengan error handling untuk menangani kegagalan eksekusi event
Kesimpulan
Event Scheduler MySQL adalah tools yang powerful untuk mengotomasi tugas database. Dengan perencanaan yang baik dan monitoring yang tepat, fitur ini dapat menghemat waktu dan mengurangi risiko human error dalam pengelolaan database.
Contoh Praktis: Cleanup Data Otomatis
Berikut contoh Event Scheduler untuk membersihkan data log yang lebih dari 90 hari:
DELIMITER //
CREATE EVENT IF NOT EXISTS cleanup_old_logs
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP
DO
BEGIN
DELETE
FROM activity_log
WHERE created_at < DATE_SUB(NOW(), INTERVAL 90 DAY);
INSERT INTO cleanup_log (action, deleted_count, executed_at)
VALUES ('cleanup_old_logs', ROW_COUNT(), NOW());
END//
DELIMITER ;
Contoh di atas tidak hanya menghapus data lama, tetapi juga mencatat berapa baris yang dihapus ke tabel log untuk keperluan audit.
Monitoring dan Debugging
Untuk memantau event yang berjalan, gunakan query berikut:
-- Melihat semua event
SHOW EVENTS
FROM nama_database;
-- Melihat status event_scheduler
SHOW PROCESSLIST;
-- Melihat detail event spesific
SHOW CREATE EVENT nama_event
G
Jika event tidak berjalan, cek apakah event_scheduler aktif dan apakah user memiliki privilege yang cukup untuk membuat dan menjalankan event.
Update 2026
Artikel ini pertama kali ditulis beberapa tahun lalu. Sejak itu, banyak hal yang berubah di dunia teknologi. Berikut beberapa tutorial terbaru yang mungkin berguna buat kamu:
- MySQL vs PostgreSQL vs SQLite - Mana yang Cocok untuk Project Kamu
- Strategi MySQL Indexing untuk Query Cepat di Aplikasi Web
Kalau ada pertanyaan atau mau request tutorial lain, tinggalkan komentar di bawah ya!