Maison >base de données >tutoriel mysql >Puis-je supprimer des données des tables InnoDB supprimées sans une reconstruction complète de la base de données ?

Puis-je supprimer des données des tables InnoDB supprimées sans une reconstruction complète de la base de données ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-14 17:01:12708parcourir

Can I Remove Data from Deleted InnoDB Tables Without a Full Database Rebuild?

Optimisation du moteur de stockage MySQL InnoDB pour la suppression des données

Problème : Est-il possible de supprimer les données des tables supprimées dans un moteur de stockage MySQL InnoDB sans reconstruire l'intégralité base de données ?

Réponse :Oui, c'est possible grâce à un processus de nettoyage complet.

Explication :

InnoDB stocke divers types de données dans son fichier ibdata1, y compris les données de table, les index et les métadonnées système. Lorsque les tables sont supprimées, leurs données et index restent dans ibdata1, même s'ils ne sont plus accessibles. Cela peut entraîner une perte d'espace et une dégradation des performances au fil du temps.

Processus de nettoyage :

  1. Vider la base de données : Créer un vidage SQL de toutes les bases de données sauf mysql et information_schema.
  2. Supprimer les bases de données : Supprimer toutes les bases de données à l'exception de MySQL et information_schema.
  3. Désactiver l'arrêt rapide : Définissez innodb_fast_shutdown sur 0 pour effacer les modifications transactionnelles des fichiers journaux.
  4. Arrêter MySQL : Arrêtez le serveur MySQL.
  5. Modifier Configuration : Ajoutez les paramètres innodb_file_per_table, innodb_flush_method=O_DIRECT, innodb_log_file_size et innodb_buffer_pool_size à /etc/my.cnf.
  6. Supprimez les fichiers ibdata :* Supprimez tout Fichiers ibdata et ib_logfile*.
  7. Redémarrez MySQL : Démarrez MySQL, qui recréera ibdata1 avec uniquement des métadonnées.
  8. Importer un vidage de base de données : Restaurez le dump SQL précédemment exporté.

Après ce processus, ibdata1 ne contiendra que des métadonnées, tandis que les tables individuelles résideront dans leurs propres fichiers .ibd. Cela permet d'optimiser les tables individuelles à l'aide d'OPTIMIZE TABLE, réduisant ainsi l'espace perdu et améliorant les performances.

Remarque : Il est essentiel de s'assurer que les autorisations des utilisateurs sont correctement rétablies après la suppression des bases de données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn