MySQL TRUNCATE, hol a hely?
jan 24
Az imént szórtam ki 36 millió rekordot az egyik log táblánkból, felszabadítva ezzel 34GB tárhelyet a szerveren. Illetve csak felszabadítottam volna, mert a táblához tartozó .idb fájl mérete a tisztogatás után nem változott.
Rövid guglizás után meglett a válasz: a TRUNCATE csak a MySQL felé tünteti el a rekordokat, rendszer szinten nem szabadítja fel a korábban allokált helyet. A probléma szerencsére egyszerűen orvosolható egy tábla optimalizálással:
OPTIMIZE TABLE tablename;
És máris ott figyel több tíz gigányi szabad terület a diszken.