Maison >base de données >tutoriel mysql >Comment puis-je nettoyer efficacement mon moteur de stockage InnoDB pour améliorer les performances de la base de données ?
Comment nettoyer un moteur de stockage InnoDB
Malgré ses avantages, le moteur de stockage InnoDB peut devenir encombré de données provenant de tables supprimées, potentiellement gonflées la base de données au fil du temps. Pour nettoyer ces données inutiles et maintenir l'efficacité de la base de données, suivez ces étapes :
Étape 1 : vider les données de la base de données
Exportez l'intégralité de la base de données dans un fichier texte SQL à l'aide de mysqldump . Par exemple, vous pouvez créer un fichier nommé SQLData.sql.
Étape 2 : Supprimer les bases de données
Supprimez toutes les bases de données à l'exception de mysql et information_schema. Assurez-vous de disposer de toutes les autorisations d'utilisateur en copiant le répertoire mysql vers un emplacement de sauvegarde (/var/lib/mysql_grants).
Étape 3 : vider les modifications transactionnelles
Exécutez le commande SET GLOBAL innodb_fast_shutdown = 0 ; pour purger toutes les modifications transactionnelles restantes.
Étape 4 : Arrêter et modifier la configuration
Arrêtez MySQL et ajoutez les lignes suivantes à votre fichier /etc/my.cnf :
[mysqld] innodb_file_per_table innodb_flush_method=O_DIRECT innodb_log_file_size=1G innodb_buffer_pool_size=4G
Étape 5 : Nettoyer Fichiers
Supprimez les fichiers ibdata et ib_logfile de votre répertoire de données MySQL.
Étape 6 : Redémarrez MySQL
Redémarrez MySQL pour recréer ibdata1 et ib_logfile* fichiers.
Étape 7 : Importer des données
Importez le fichier SQLData.sql précédemment vidé pour restaurer les données de votre base de données.
Après avoir terminé ces étapes, ibdata1 ne contiendra que les métadonnées de la table, tandis que chaque table InnoDB sera stockée indépendamment. L'exécution d'OPTIMIZE TABLE réduira désormais efficacement les fichiers de table (/var/lib/mysql/mydb/mytable.ibd).
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!