Rumah >pangkalan data >tutorial mysql >Gunakan MySQL untuk mencipta jadual pengarkiban data untuk melaksanakan fungsi pengarkiban data
Gunakan MySQL untuk mencipta jadual arkib data untuk melaksanakan fungsi pengarkiban data
Pengarkiban data merujuk kepada memindahkan data lama ke jadual arkib sejarah untuk mengekalkan prestasi tinggi jadual pangkalan data utama. Pengarkiban data ialah kaedah pengurusan data yang berkesan apabila berurusan dengan jumlah data yang besar. MySQL menyediakan banyak kaedah untuk melaksanakan pengarkiban data, salah satunya adalah dengan mencipta jadual pengarkiban data. Artikel ini akan memperkenalkan cara menggunakan MySQL untuk mencipta jadual pengarkiban data untuk melaksanakan fungsi pengarkiban data.
CREATE TABLE main_table ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), age INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE archive_table ( id INT PRIMARY KEY, name VARCHAR(100), age INT, created_at TIMESTAMP );
delimiter // CREATE PROCEDURE archive_data() BEGIN DECLARE done INT DEFAULT 0; DECLARE id INT; DECLARE name VARCHAR(100); DECLARE age INT; DECLARE cur CURSOR FOR SELECT id, name, age FROM main_table WHERE created_at < DATE_SUB(CURDATE(), INTERVAL 1 YEAR); DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur; read_loop: LOOP FETCH cur INTO id, name, age; IF done THEN LEAVE read_loop; END IF; INSERT INTO archive_table (id, name, age, created_at) VALUES (id, name, age, NOW()); DELETE FROM main_table WHERE id = id; END LOOP; CLOSE cur; END // delimiter ;
Prosedur tersimpan ini menanyakan jadual utama untuk data dari setahun yang lalu dan memasukkannya ke dalam jadual sejarah. Selepas pemasukan berjaya, data yang sepadan dipadamkan daripada jadual utama.
CREATE EVENT archive_data_event ON SCHEDULE EVERY 1 DAY STARTS '2022-01-01 00:00:00' DO CALL archive_data();
Tugas berjadual ini akan melaksanakan prosedur disimpan arkib sekali sehari.
INSERT INTO main_table (name, age) VALUES ('John', 25); INSERT INTO main_table (name, age) VALUES ('Emily', 30); -- 等待一天 SELECT * FROM main_table; -- 返回空结果,数据已归档到历史表 SELECT * FROM archive_table; -- 返回归档的数据
Melalui langkah di atas, kami berjaya mencipta jadual pengarkiban data menggunakan MySQL dan melaksanakan fungsi pengarkiban data. Pengarkiban data boleh membantu kami mengekalkan prestasi tinggi jadual utama dan menyimpan data sejuk dalam jadual sejarah untuk keperluan pertanyaan dan analisis.
Atas ialah kandungan terperinci Gunakan MySQL untuk mencipta jadual pengarkiban data untuk melaksanakan fungsi pengarkiban data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!