如何压缩SQLite的数据文件

进行移动设备开发,例如Windows Mobile或者Wince(Windows Embedded CE)的开发,有时候会使用到SQLite作为存储数据库。SQLite默认配置是不会自动回收空间,如何进行大量数据的删除以后,数据库文件大小不会自动减少,因此需要手工压缩SQLite的数据文件大小。

 

很简单的操作,执行VACUUM命令,完了。

参考 http://www.sqlite.org/lang_vacuum.html

 

关于SQLite的Native C++开发,可参考

Windows Mobile下访问Sqlite的Native C++封装

作者:Jake LinJake's Blog on 博客园
出处:http://procoder.cnblogs.com

作品Jake Lin创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言
posted @ 2009-11-12 10:07 Jake Lin 阅读(1538) 评论(3) 编辑 收藏

 回复 引用 查看   
#1楼 2009-11-12 10:29 chy710      
噢,数据删除后的空间回收,不知system.data.sqlite里有没有类似的封装;有没有普通状态下的压缩?不仅是删除后的回收。
 回复 引用 查看   
#2楼[楼主] 2009-11-12 10:32 Jake Lin      
@chy710
executenonquery("VACUUM");
就可以了。

我没有找到压缩的方法,因此sqlite占用数据空间挺大的,这点很不爽。

 回复 引用 查看   
#3楼 2009-11-19 18:20 RubyPDF      
引用chy710:噢,数据删除后的空间回收,不知system.data.sqlite里有没有类似的封装;有没有普通状态下的压缩?不仅是删除后的回收。

貌似system.data.sqlite封装了这个功能的,我之前看过一篇英文文章的