全部产品
Search
文档中心

PolarDB:Ikhtisar

更新时间:Jul 06, 2025

Topik ini menjelaskan implementasi fitur time to live (TTL) dalam kluster PolarDB for MySQL.

Informasi latar belakang

Fitur TTL, yang umum ditemukan di database NoSQL dan mesin penyimpanan berbasis log-structured merge-tree (LSM tree), mengimplementasikan kebijakan manajemen siklus hidup pada tingkat kunci dan baris. Fitur TTL secara efisien menghemat ruang penyimpanan dalam skenario tertentu. Pada penyimpanan key-value, thread latar belakang secara berkala memindai kunci yang kedaluwarsa dan menghapusnya. Pada database berbasis LSM tree, thread kompaksi secara berkala membersihkan baris data yang kedaluwarsa.

Contoh

Database relasional tradisional seperti MySQL, Oracle, dan PostgreSQL tidak menyediakan dukungan asli untuk fitur TTL. Fungsionalitas serupa dapat dicapai menggunakan pemicu atau prosedur tersimpan.

-- 1. Buat tabel yang memiliki kolom untuk menunjukkan informasi waktu setiap baris.
CREATE TABLE messages(
    message_id   VARCHAR(36) PRIMARY KEY,
    sender_id    VARCHAR(36),
    receiver_id  VARCHAR(36),
    message_text TEXT,
    sent_at      TIMESTAMP
);

-- 2. Buat tugas terjadwal yang berjalan setiap 5 menit untuk menghapus baris yang kedaluwarsa berdasarkan kolom sent_at.
SET GLOBAL event_scheduler = ON;

CREATE EVENT delete_old_messages
ON SCHEDULE
  EVERY 5 MINUTE
STARTS CURRENT_TIMESTAMP
DO
DELETE FROM messages
WHERE sent_at < DATE_SUB(NOW(), INTERVAL 5 MINUTE);

Namun, metode ini dapat menimbulkan masalah berikut:

  • Jika baris yang kedaluwarsa tidak segera dihapus, baris tersebut masih dapat muncul dalam hasil query.

  • Jika sejumlah besar data perlu dihapus, kinerja database dapat mengalami fluktuasi.

Oleh karena itu, sistem database harus mendukung fitur TTL secara asli untuk manajemen TTL yang lebih tepat dan efisien.

Versi yang didukung

Anda dapat menggunakan fitur TTL di kluster yang menjalankan salah satu versi mesin database berikut:

  • PolarDB for MySQL 8.0.1 dengan versi revisi 8.0.1.1.49.2 atau yang lebih baru.

  • PolarDB for MySQL 8.0.2 dengan versi revisi 8.0.2.2.29.2 atau yang lebih baru.

Untuk informasi tentang cara melihat versi mesin database suatu kluster, lihat Kueri Versi Mesin.