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 Tıklayınız.
WWW
Cevapla
#2
Güzelmiş, hiç haberim yoktu. İşime yarıycak bişi. Sağolasın.
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
  MySQL - Sql-mode only_full_group_by hatası. hi_selamlar 5 1.783 25-12-2022, Saat: 10:43
Son Yorum: hi_selamlar
  MySQL Bağlantı Sorunu - MEB akıllı tahta Frrst 6 1.442 10-11-2022, Saat: 23:16
Son Yorum: mcuyan
  Mysql Farklı bir autoinc mcuyan 11 2.012 09-11-2022, Saat: 23:05
Son Yorum: mcuyan
  Delphi 7 MySql DAC Nasıl Kurulur mahone 1 631 08-10-2022, Saat: 22:09
Son Yorum: mcuyan
  mysql trigger subquery returns more than 1 row hatası cvheneburi 5 2.070 28-08-2022, Saat: 01:04
Son Yorum: cvheneburi



Konuyu Okuyanlar: 1 Ziyaretçi