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 puis-je nettoyer efficacement mon moteur de stockage InnoDB pour améliorer les performances de la base de données ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 16:51:15997parcourir

How Can I Efficiently Clean Up My InnoDB Storage Engine to Improve Database Performance?

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!

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