Maison >base de données >tutoriel mysql >Utilisez MySQL pour créer des tables d'archivage de données afin d'implémenter des fonctions d'archivage de données
Utilisez MySQL pour créer des tables d'archives de données afin de mettre en œuvre des fonctions d'archivage de données
L'archivage de données fait référence au déplacement d'anciennes données vers des tables d'archives historiques pour maintenir les hautes performances des tables de base de données principales. L'archivage des données est une méthode de gestion de données efficace lorsqu'il s'agit de grandes quantités de données. MySQL propose de nombreuses méthodes pour implémenter l'archivage des données, dont la création de tables d'archivage de données. Cet article explique comment utiliser MySQL pour créer une table d'archivage de données afin d'implémenter la fonction d'archivage de données.
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 ;
Cette procédure stockée interroge la table principale pour les données d'il y a un an et les insère dans la table historique. Une fois l'insertion réussie, les données correspondantes sont supprimées de la table principale.
CREATE EVENT archive_data_event ON SCHEDULE EVERY 1 DAY STARTS '2022-01-01 00:00:00' DO CALL archive_data();
Cette tâche planifiée exécutera la procédure stockée d'archive une fois par jour.
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; -- 返回归档的数据
Grâce aux étapes ci-dessus, nous avons réussi à créer la table d'archivage des données à l'aide de MySQL et à implémenter la fonction d'archivage des données. L'archivage des données peut nous aider à maintenir les hautes performances des tables primaires et à enregistrer des données froides dans des tables historiques pour les besoins de requêtes et d'analyse.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!