Consider the following table schema: CREATE TABLE [Data1]( [Data] BLOB, [Items_id] INTEGER, [Key] TEXT); If there is a row with the following data and the database is vacuumed: [Data] = <very large binary>, Items_id = 1, Key = "MyKey" And we issue the following command: UPDATE Data1 SET Items_id = null, Key = null WHERE Items_id = 1; The database file size on disk appears to double and the 'Pages on the freelist' is 50% when using sqlite3_analyzer in the summary output.