কম্পিউটার টিউটোরিয়াল

MySQL-এ TTL (Time To Live) সহ রেকর্ড তৈরি করা (Event Scheduler)

MySQL-এ TTL (Time To Live) ইমপ্লিমেন্ট করতে Event Scheduler ব্যবহার করুন। এটি স্বয়ংক্রিয়ভাবে পুরনো রেকর্ড ডিলিট করে।

প্রস্তুতি: Event Scheduler অন করা

mysql> SET GLOBAL event_scheduler = ON;

স্থায়ী করতে my.cnf-এ event_scheduler=ON যোগ করুন।

টেবিল তৈরি করুন

mysql> CREATE TABLE EventDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EventDateTime DATETIME
    -> );
Query OK, 0 rows affected (0.71 sec)

রেকর্ড ইনসার্ট করুন:

mysql> INSERT INTO EventDemo(EventDateTime) VALUES('2010-09-21');
mysql> INSERT INTO EventDemo(EventDateTime) VALUES('2016-10-27');
mysql> INSERT INTO EventDemo(EventDateTime) VALUES('2018-12-09');
mysql> INSERT INTO EventDemo(EventDateTime) VALUES('2019-03-12');
mysql> INSERT INTO EventDemo(EventDateTime) VALUES('2019-01-04');

সকল রেকর্ড:

mysql> SELECT * FROM EventDemo;
+----+---------------------+
| Id | EventDateTime       |
+----+---------------------+
|  1 | 2010-09-21 00:00:00 |
|  2 | 2016-10-27 00:00:00 |
|  3 | 2018-12-09 00:00:00 |
|  4 | 2019-03-12 00:00:00 |
|  5 | 2019-01-04 00:00:00 |
+----+---------------------+
5 rows in set (0.00 sec)

TTL ইভেন্ট তৈরি করুন (প্রতিদিন পুরনো রেকর্ড ডিলিট)

mysql> DELIMITER //
mysql> CREATE EVENT DeleteDemo
    -> ON SCHEDULE EVERY 1 DAY
    -> DO
    -> BEGIN
    ->   DELETE FROM EventDemo WHERE EventDateTime < NOW();
    -> END //
Query OK, 0 rows affected (0.31 sec)
mysql> DELIMITER ;

ইভেন্ট লিস্ট দেখুন

mysql> SHOW EVENTS;

গুরুত্বপূর্ণ পয়েন্টস

  • ON SCHEDULE EVERY 1 DAY - প্রতিদিন একবার চালাবে
  • NOW() - বর্তমান টাইমস্ট্যাম্প, এর চেয়ে পুরনো রেকর্ড ডিলিট হবে
  • DELIMITER // ... DELIMITER ; - মাল্টি-স্টেটমেন্ট ব্লকের জন্য ডিলিমিটার পরিবর্তন
  • ইভেন্ট ডিজেবল করতে: ALTER EVENT DeleteDemo DISABLE;
  • ইভেন্ট ড্রপ করতে: DROP EVENT DeleteDemo;

বিকল্প (MySQL 8.0+): TTL কলামে EXPIRE AFTER INTERVAL ব্যবহার করা যায় (কিছু স্টোরেজ ইঞ্জিনে) বা অ্যাপ্লিকেশন লেভেলে হ্যান্ডেল করুন।

  1. MySQL কমান্ড লাইন থেকে ডেটাবেস তৈরি করা

  2. MySQL-এ ORDER BY RAND() LIMIT 1 ব্যবহার করে র‍্যান্ডম রেকর্ড নির্বাচন করুন

  3. MySQL에서 VIEW(뷰) 생성하고 조회하기

  4. MySQL সিকোয়েন্স তৈরি (How to Create a MySQL Sequence)