Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL Event Kullanımı
#1
Eventler, MySQL'e  5.1.6 Sürümünden sonra gelen Zamanlanmış Görevler özelliğidir ve varsayılanda kapalıdır.

Öncelikle Aşağıdaki komutla bu özellik açılır.
SET GLOBAL event_scheduler = 1;


Şimdi bir senaryo üzerinde anlayalım, benim sürekli hata analizleri için kullandığım bir kaç tabloyu daha fazla şişmemesi için belirli periyotlarla silmek ve optimize etmek istiyorum. 
Son 3 günüm kayıtları benim görüp analiz etmem için yeterli, gerisine gerek yok...

Eventime bir isim veriyorum cleaner,
CREATE EVENT cleaner

ve sayacımı ayarlıyorum, ben bu eventimin 2016-06-18 19:00:00 tarihinden başlayarak, her 24 saatte bir çalışmasını istiyorum.  yani her gün saat 19:00:00 da bu eventim çalışacak,
ON SCHEDULE EVERY 24 HOUR STARTS '2016-06-18 19:00:00'

Kullanabileceğimiz İnterval'ler

Alıntı:YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND



Ve  BEGIN    END bloğuma çalışmasını istediğim sql cümlelerimi yazıyorum.

delimiter |
CREATE EVENT cleaner
ON SCHEDULE EVERY 24 HOUR STARTS
DO
BEGIN   
  DELETE FROM llpano WHERE tarih < DATE_SUB(CURRENT_DATE, INTERVAL 3 DAY);
  DELETE FROM ops_havuz WHERE tarih < DATE_SUB(CURRENT_DATE, INTERVAL 3 DAY);
  DELETE FROM ops_havuzlog WHERE tarih < DATE_SUB(CURRENT_DATE, INTERVAL 3 DAY );
  SET @maxid = 0 ;
  SELECT ifnull(max(id),0) INTO @maxid FROM ops_ptt;
  DELETE from ops_ptt WHERE id < (@maxid-1000);
  OPTIMIZE TABLE llpano;
  OPTIMIZE TABLE ops_havuz;
  OPTIMIZE TABLE ops_havuzlog;
  OPTIMIZE TABLE ops_ptt;
END |   
delimiter;


Mysql'de var olan Eventlerimi listelemek için,
SHOW EVENTS;

Event Statüsünü Değiştirmek İçin,
ALTER EVENT cleaner DISABLE;
ALTER EVENT cleaner ENABLED;

Event Zamanını Değiştirmek İçin,
ALTER EVENT cleaner 
ON SCHEDULE EVERY 12 HOUR;

Event Silmek İçin,
DROP EVENT cleaner 


Daha Fazla Bilgi İçin Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#2
Güzelmiş, hiç haberim yoktu. İşime yarıycak bişi. Sağolasın.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#3
Paylaşım için teşekkürler.
There's no place like 127.0.0.1
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [ÇÖZÜLDÜ] SQLite'dan MySQL'e Aktarma ? Mr.Developer 3 307 22-07-2019, Saat: 20:31
Son Yorum: Mr.Developer
  (ÇÖZÜLDÜ] MySQL Date_format komutu wiseman 1 264 30-05-2019, Saat: 11:30
Son Yorum: wiseman
  MySQL Drop database Yetkisi yhackup 2 468 22-03-2019, Saat: 11:21
Son Yorum: yhackup
  MySQL Workbench Kod Tamamlama Hatası - (Code Completion) hi_selamlar 0 337 23-02-2019, Saat: 11:42
Son Yorum: hi_selamlar
  MySQL malformed trail byte or out of range char yhackup 5 694 31-01-2019, Saat: 09:55
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi