2010-01-24 17 views

Respuesta

28

Las bases de datos que usan MVCC para aislar transacciones entre sí necesitan escanear periódicamente las tablas para eliminar copias obsoletas de filas. En MVCC, cuando se actualiza o elimina una fila, no se puede reciclar inmediatamente porque puede haber transacciones activas que aún puedan ver la versión anterior de la fila. En lugar de verificar si ese es el caso, lo que podría ser bastante costoso, se supone que las filas antiguas siguen siendo relevantes. El proceso de reclamación del espacio se aplaza hasta que se vacía la tabla que, según la base de datos, se puede iniciar de forma automática o explícita.

0

Es muy similar a desfragmentar un sistema de archivos. Más información en el PGSQL docs.

+2

Defragging no se trata de reclamar espacio. Se trata de reordenar los datos para reducir la fragmentación. –

1

'vacuumdb' está en MySQL, sqlite y PostgreSQL. En Postgres, vacuumdb identifica el espacio ocupado por filas eliminadas y lo cataloga para su uso futuro. 'vacuum full' hace un examen más completo y mueve registros al espacio recién creado.

Cuestiones relacionadas