Core Data sqlite文件越来越多

时间:2012-12-14 08:46:30

标签: objective-c ios sqlite core-data

我有一个同步过程,我使用Core Data来存储大量信息。有几次我用组织者下载了真实的SQLite数据库文件来检查数据是否正确。

前几天我意识到两个SQLite文件的大小差异很大。一个文件是80MB,另一个文件大约是100MB。当我用SQLite查看器检查其中的数据时没有区别。相同的表,相同的索引,相同的行。怎么可能?当我删除Core Data上的对象时,是否有可能某些数据仍在文件中?

编辑:

解决方案是一个选项标志,可以插入选项NSDictionary中,并作为参数添加到addPersistentStore方法中。

NSSQLiteManualVacuumOption
Option key to rebuild the store file, forcing a database wide defragmentation when the store is added to the coordinator.

This invokes SQLite's VACUUM command. It is ignored by stores other than the SQLite store.

1 个答案:

答案 0 :(得分:4)

出于性能原因,Sqlite不会在删除数据时主动返回未使用的磁盘空间。这可能就是你看到差异的原因。有关详细信息,请参阅此链接:

SQLite FAQ