Mysql
 sql >> Base de données >  >> RDS >> Mysql

L'espace occupé par les lignes supprimées est-il réutilisé ?

C'est de la paranoïa :)

La taille des bases de données n'augmente pas inutilement, mais pour des problèmes de performances, l'espace n'est pas non plus libéré.

Ce que vous avez probablement entendu, c'est que si vous supprimez des enregistrements, cet espace n'est pas rendu au système d'exploitation . Au lieu de cela, il est conservé comme un espace vide pour que la base de données puisse le réutiliser par la suite.

C'est parce que :

  • La base de données doit disposer d'un espace disque dur pour enregistrer ses données ; s'il n'y a pas d'espace, il réserve d'abord de l'espace vide.
  • Lorsque vous insérez une nouvelle ligne, une partie de cet espace est utilisée.
  • Lorsque vous manquez d'espace libre, un nouveau bloc est réservé, et ainsi de suite.
  • Maintenant, lorsque vous supprimez des lignes , afin d'éviter de réserver de plus en plus de blocs, son espace est laissé libre mais jamais restitué au système d'exploitation, vous pouvez donc le réutiliser plus tard sans avoir besoin de réserver de nouveaux blocs.

Comme vous pouvez le voir, l'espace est réutilisé, mais jamais rendu. C'est le point clé de votre question.