![]() |
|
MySQL Event Kullanımı - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Veri Tabanı (https://www.delphican.com/forumdisplay.php?fid=4) +--- Forum: MySQL (https://www.delphican.com/forumdisplay.php?fid=14) +--- Konu Başlığı: MySQL Event Kullanımı (/showthread.php?tid=95) |
MySQL Event Kullanımı - yhackup - 18-08-2016 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. Cvp: MySQL Event Kullanımı - esistem - 18-08-2016 Güzelmiş, hiç haberim yoktu. İşime yarıycak bişi. Sağolasın. Cvp: MySQL Event Kullanımı - SimaWB - 18-08-2016 Paylaşım için teşekkürler. |