我正在以编程方式尝试SQLite在删除一些行后检查iphone上存储的数据库的大小。记录被删除,但文件大小保持不变。从iOS中的sqlite删除记录后,有什么方法可以获取正确的文件大小?请参见下面的代码:
NSString* databasePath = [[NSString alloc]
initWithString: [self.documentsDirectory stringByAppendingPathComponent: self.databaseFilename]];
unsigned long long fileSize = [[[NSFileManager defaultManager]
attributesOfItemAtPath:databasePath error:nil] fileSize];
Run Code Online (Sandbox Code Playgroud)
谢谢!
我不能使用vaccum方法,因为它会删除所有记录。我仅删除50%的数据,而不是全部。因此,这不是此问题的重复项, 在“ DELETE FROM table”之后更改sqlite文件大小
Ste*_*sen 11
删除记录时,SQLite 数据库文件的大小不一定会缩小。如果没有启用auto_vacuum,它永远不会收缩,除非你对其执行vacuum操作。
请参阅https://sqlite.org/lang_vacuum.html和https://sqlite.org/pragma.html#pragma_auto_vacuum。