¿Por qué SQLite agrega espacio de disco no utilizado a la "lista libre" después de eliminar muchos datos en una base de datos?

dba.stackexchange https://dba.stackexchange.com/questions/24519

  •  30-10-2019
  •  | 
  •  

Pregunta

Las preguntas frecuentes de SQLite establecen lo siguiente:

(12) Eliminé muchos datos, pero el archivo de la base de datos no se hizo más pequeño. ¿Es esto un error?

No. Cuando elimina la información de una base de datos SQLite, el espacio de disco no utilizado se agrega a una "lista libre" interna y se reutiliza la próxima vez que inserte datos. El espacio del disco no se pierde. Pero tampoco se devuelve al sistema operativo.

¿Puedes explicarme los motivos detrás de esa decisión (en oposición a devolver el espacio libre al sistema operativo inmediatamente)? ¿Cuáles son los pros y los contras de dicha decisión (incluidas las no obvias)?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top