sql >> Base de Datos >  >> RDS >> Mysql

¿Se reutiliza el espacio ocupado por las filas eliminadas?

Es paranoia :)

Las bases de datos no aumentan de tamaño innecesariamente, pero tampoco se libera espacio por cuestiones de rendimiento.

Lo que probablemente haya escuchado es que si elimina registros, ese espacio no se devuelve al sistema operativo. . En su lugar, se mantiene como un espacio vacío para que la base de datos lo reutilice después.

Esto se debe a que:

  • DB necesita tener algo de espacio HD para guardar sus datos; si no tiene espacio, al principio reserva algo de espacio vacío.
  • Cuando inserta una nueva fila, se usa una parte de ese espacio.
  • Cuando se queda sin espacio libre, se reserva un nuevo bloque, y así sucesivamente.
  • Ahora, cuando elimina algunas filas , para evitar reservar más y más bloques, su espacio se mantiene libre pero nunca se devuelve al Sistema Operativo, por lo que puede volver a usarlo más tarde sin necesidad de reservar nuevos bloques.

Como puede ver, el espacio es reutilizado, pero nunca devuelto. Ese es el punto clave de tu pregunta.