Skip navigation.
 
mlRe: Core Data troubles - not removing objects
FROM : Ben Trumbull
DATE : Sat Nov 03 23:58:52 2007

> My problem is, that if I include a huge amount of data like an
> uncompressed image that will swell the SQLite file to 72MB,


Generally, large media files should be stored externally to the 
database, and a URI and metadata for it stored in a database record.

> removing the item does not reduce the file size. I found that if I 
> add another
> item later that should be around the same size the file size does not
> change so what you wrote makes sense in that the "holes" inside the
> file are filled up with new data but I can't get the file size to
> reduce even by a few bytes.


What you're seeing is internal fragmentation.

> I was thinking of maybe implementing a "consolidate database" function
> that would load the data from the file to memory, remove the file and
> recreate the items which would reduce the file size if I am correct.


That's very expensive.

> Or does anyone have a better solution?


Yes.  You can manually vacuum an SQLite database with:

sqlite3 filename "vacuum"

Programmatically, you can use an NSTask.

- Ben

Related mailsAuthorDate
mlCore Data troubles - not removing objects Benjámin Salánki Nov 1, 10:04
mlRe: Core Data troubles - not removing objects Adam Swift Nov 1, 23:40
mlRe: Core Data troubles - not removing objects Benjámin Salánki Nov 1, 23:53
mlRe: Core Data troubles - not removing objects Chris Hanson Nov 2, 03:04
mlRe: Core Data troubles - not removing objects Benjámin Salánki Nov 3, 21:09
mlRe: Core Data troubles - not removing objects Ben Trumbull Nov 3, 23:58
mlRe: Core Data troubles - not removing objects Benjámin Salánki Nov 4, 17:37
mlRe: Core Data troubles - not removing objects Bill Bumgarner Nov 4, 17:59