집 >데이터 베이스 >MySQL 튜토리얼 >MySQL을 사용하여 데이터 보관 테이블을 생성하여 데이터 보관 기능 구현
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!