MySQL을 사용하여 데이터 보관 테이블을 생성하여 데이터 보관 기능 구현
데이터 보관이란 오래된 데이터를 기록 보관 테이블로 이동하여 기본 데이터베이스 테이블의 고성능을 유지하는 것을 의미합니다. 데이터 아카이빙은 대용량 데이터를 처리할 때 효과적인 데이터 관리 방법입니다. MySQL은 데이터 보관을 구현하는 다양한 방법을 제공하며 그 중 하나는 데이터 보관 테이블을 생성하는 것입니다. 이 기사에서는 MySQL을 사용하여 데이터 보관 테이블을 생성하여 데이터 보관 기능을 구현하는 방법을 소개합니다.
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 ;
이 저장 프로시저는 기본 테이블에서 1년 전 데이터를 쿼리하여 기록 테이블에 삽입합니다. 삽입이 성공하면 해당 데이터가 기본 테이블에서 삭제됩니다.
CREATE EVENT archive_data_event ON SCHEDULE EVERY 1 DAY STARTS '2022-01-01 00:00:00' DO CALL archive_data();
이 예약된 작업은 하루에 한 번 아카이브 저장 프로시저를 실행합니다.
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; -- 返回归档的数据
위의 과정을 통해 MySQL을 이용하여 데이터 아카이빙 테이블을 성공적으로 생성하고 데이터 아카이빙 기능을 구현했습니다. 데이터 보관은 기본 테이블의 고성능을 유지하고 쿼리 및 분석 요구 사항에 따라 기록 테이블에 콜드 데이터를 저장하는 데 도움이 될 수 있습니다.
위 내용은 MySQL을 사용하여 데이터 보관 테이블을 생성하여 데이터 보관 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!