2

我有一个同步过程,我用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.
4

1 回答 1

4

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

SQLite 常见问题解答

于 2012-12-14T08:49:08.563 回答