Freien Platz zurückgewinnen (shrink / vacuum / compact)
Oracle
ALTER TABLE customer ENABLE ROW MOVEMENT;
ALTER TABLE customer SHRINK SPACE;SHRINK senkt die High Water Mark (HWM). Um auch Indizes zu verkleinern, SHRINK SPACE CASCADE verwenden.
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 setzt einen AccessExclusiveLock und schreibt die Tabelle neu; nicht zu Spitzenzeiten ausführen. Alternative: pg_repack.
MySQL
OPTIMIZE TABLE customer;Baut bei InnoDB die Tabelle neu auf und gibt den data_free-Platz zurück; dauert bei großen Tabellen lange.
SQL Server
-- Generally NOT RECOMMENDED (causes fragmentation). If really needed:
DBCC SHRINKFILE (N'MyDB_data', 1024); -- target 1024 MBDas Verkleinern einer Datendatei verursacht Indexfragmentierung; danach die Indizes mit REBUILD neu aufbauen. Beim Log zuerst ein Backup erstellen.
MongoDB
db.runCommand({ compact: "customer" })Versucht bei WiredTiger, freien Platz an das Betriebssystem zurückzugeben (nicht immer möglich). Ab 4.4 blockiert es keine Lese-/Schreibzugriffe, nur bestimmte DDL-Operationen auf derselben Collection; da es hohe IO-Last erzeugt, ist die Ausführung auf einem Secondary und in einem Wartungsfenster sicherer.
Redis
MEMORY PURGE
# Tries to return jemalloc fragmentation to the OSDie Einstellung activedefrag yes defragmentiert online und automatisch; MEMORY DOCTOR liefert Empfehlungen.