Récupérer l'espace libre (shrink / vacuum / compact)
Oracle
ALTER TABLE customer ENABLE ROW MOVEMENT;
ALTER TABLE customer SHRINK SPACE;SHRINK abaisse le high water mark (HWM). Pour réduire aussi les index, utilisez SHRINK SPACE CASCADE.
PostgreSQL
-- Online, light locking (does not return space to the OS):
VACUUM (VERBOSE, ANALYZE) customer;
-- Return space to the OS (locks the table!):
-- VACUUM FULL customer;VACUUM FULL pose un AccessExclusiveLock et réécrit la table ; ne l'exécutez pas aux heures de pointe. Alternative : pg_repack.
MySQL
OPTIMIZE TABLE customer;Sur InnoDB, reconstruit la table et restitue l'espace data_free ; long sur les grandes tables.
SQL Server
-- Generally NOT RECOMMENDED (causes fragmentation). If really needed:
DBCC SHRINKFILE (N'MyDB_data', 1024); -- target 1024 MBRéduire un fichier de données provoque une fragmentation des index ; faites ensuite un REBUILD des index. Pour le journal, effectuez d'abord une sauvegarde.
MongoDB
db.runCommand({ compact: "customer" })Sur WiredTiger, tente de restituer l'espace libre au système d'exploitation (pas toujours possible). En 4.4+, ne bloque pas les lectures/écritures, seulement certaines opérations DDL sur la même collection ; comme il génère beaucoup d'IO, il est plus sûr de l'exécuter sur un secondaire et dans une fenêtre de maintenance.
Redis
MEMORY PURGE
# Tries to return jemalloc fragmentation to the OSLe réglage activedefrag yes effectue une défragmentation automatique en ligne ; MEMORY DOCTOR fournit des recommandations.