sqlite>vacuum;
VACUUM命令会清空逗空闲列表地,把数据库尺寸压缩到最小。但是要耗费一些时间。
FQA里面说,在Linux的环境下,大约0.5秒/M。并且要使用两倍于数据库文件的空间。
我憎恨此FQA,他只说系统环境,不说机器硬件环境。我在测试手机上执行用了将近13秒时间压缩了将近3M的空间。至于它所占用的另一部分空间,是生成了一个.db-journal后缀名的临时文件。(这个问题对我现在来说是无所谓的。)
每次 *** 作完单个文件的之后,先用fflush让内存清空,保证数据一致,最好加上流的清空,格式为流名称.clear()。如果单个文件 *** 作结束,也意味着这个打开的文件暂时没有必要存在了,为了节省资源同时保证你能关闭或者删除这个文件,需要对该文件对应的文件流进行关闭。对于文件和数据库等这些东西,如果一个 *** 作正在进行 *** 作或者已经 *** 作完成,但是没有释放文件和数据库等的相关资源, *** 作系统是不允许对这个文件或者数据库进行其他的 *** 作的。
希望你能看懂。呵呵
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)