Comment récupérer l'espace disque après la suppression de données dans MongoDB

2023. 3. 15. 20:39mongodb

반응형



Récemment, en surveillant MongoDB, j'ai été rappelé de l'importance du DML (langage de manipulation de données) - la capacité à interroger (SELECT), modifier (UPDATE), stocker (INSERT) et supprimer (DELETE) des données.

J'ai rencontré un problème surprenant avec MongoDB : après la suppression de données, l'espace disque n'était pas restitué. L'utilisation du disque de notre serveur MongoDB avait atteint 78 %, et le serveur de développement MongoDB, qui n'avait même pas été utilisé pendant trois mois, était plein. La conception était destinée à stocker des données pendant plus d'un an, donc j'ai senti que quelque chose n'allait pas.

J'ai effectué divers tests et j'ai découvert que lorsque j'ai supprimé la collection, l'espace disque diminuait, mais lorsque j'ai supprimé la collection, l'espace disque est resté le même. C'était alarmant car la suppression de données aurait dû restituer l'espace disque.

Après avoir recherché le problème, j'ai découvert la commande "compact". C'est comme la défragmentation pour le disque - une commande qui nettoie les données inutilisées et restitue l'espace à utiliser. L'effet de la commande était remarquable ; l'utilisation du disque est passée de 78 % à 36 %. Étant donné que notre serveur de développement contenait de nombreuses données supprimées et utilisées de manière incorrecte, l'impact de cette commande était particulièrement important.

반응형



1. Tout d'abord, accédez à la base de données.

use database_name



2. Sélectionnez la collection que vous souhaitez compacter.

db.runCommand( {compact : Collection_name, force : true} )



3. Et ensuite, attendre anxieusement...
Heureusement, aucun verrouillage de collection n'a été appliqué pendant mes tests, et même lorsque j'ai exécuté la commande sur le serveur de production, il n'y a eu aucun problème majeur. Cependant, le temps d'attente était assez angoissant.
En réalité, la commande "compact" n'est pas une solution parfaite pour la capacité de stockage. Selon divers articles, la meilleure approche consiste à migrer les données vers un nouveau serveur. C'est une tâche longue et compliquée qui peut ne pas être recommandée pour tous les environnements, mais cela vaut la peine d'être envisagé si votre entreprise ou environnement le permet.

Dans l'ensemble, tout en gérant MongoDB, j'ai pris le temps de réfléchir à l'importance du DML et à quel point il est crucial de gérer les données correctement.

반응형