Colorful Life2010

C#压缩SQLite数据库
Weather:晴,北风4-5级转东风4-5级,(8~15)℃

当从SQLite数据库中删除数据时, 未用的磁盘空间将会加入一个内部的“自由列表”中。 当你下次插入数据时,这部分空间可以重用。磁盘空间不会丢失, 但也不会返还给操作系统。

如果删除了大量数据,而又想缩小数据库文件占用的空间,执行 VACUUM 命令。 VACUUM 将会从头重新组织数据库。这将会使用数据库有一个空的“自由链表”, 数据库文件也会最小。但要注意的是,VACUUM 的执行会需要一些时间 (在SQLite开发时,在Linux上,大约每M字节需要半秒种),并且, 执行过程中需要原数据库文件至多两倍的临时磁盘空间。

在SQLite ADO.Net中可以使用以下代码压缩SQLite数据库文件:

SQLiteCommand cmd = new SQLiteCommand("VACUUM",sQLiteConnection);
cmd.ExecuteNonQuery();

以上内容转自:http://hi.baidu.com/luchaoshuai

另外,可以使用像SQLite Developer这样的工具来进行压缩(本地),在线的话,还是上面的方法。

历史上的今天: [2007/10/28]考察xsl:for-each和xsl:template的不同
[2005/10/28]成功就是简单的事情重复做、重复做

[C#压缩SQLite数据库]的回复

littlenew 于 2009-03-03 11:48:56 发表 | IP:218.18.128.*

你的数据库中也用到了sqlite吧,那你是怎样对数据库本身加密的呢????如果直接用记事本打开的话,还是可以看到相当多的东西的呀。

柠檬园主 于 2009-03-03 15:06:17 发表 | IP:116.3.192.*

本站现在用的就是SQLite,没办法对数据库加密。只能是用config的扩展名,这样.net认为是系统配置文件,是不允许访问的。

反正也没什么敏感的东西,再说也没那么容易让人得到数据库到本地,看不看得到没什么关系了。

还有SQLite是可以加密的,只是这个功能不是原生的,需要进行扩展,反正我没搞过,见到过有人用C++加密,可能用于其它应用的话,还是可以用的吧。但在网站来说,没什么特别的了。 

littlenew 于 2009-03-05 11:15:18 发表 | IP:218.18.29.*

你用什么工具打开SQLite???

我在网上找了个SQLitespy的东西,似乎只能打开sqlite3,其它版本的似乎打不开。你有什么简单的方法 吗???

4#   柠檬园主 于 2009-03-05 11:28:42 发表 | IP:116.3.192.*

我用的是SharpPlus的SqliteDev,国人写的,功能还不错,并且软件有一个月左右的免费试用期,足够用了.

但问题是,这个软件在数据库里数据太大的时候,一打开相关表,就自动SHUTDOWN了.

5#   littlenew 于 2009-03-06 08:49:11 发表 | IP:218.18.29.*

在网上听说SQLitespy还算不错,但似乎打不开aaa.db这样的文件,但能打开aaa.db3这样的文件,但似乎必须是sqlite3创建的文件,好像其它版本的sqlite打不开。有点郁闷。现在应该是蒙着眼睛瞎摸,什么都不清楚,慢慢来吧。

6#   柠檬园主 于 2009-03-06 13:21:25 发表 | IP:116.3.192.*

软件一般都是版本向下兼容的,为什么不能打开DB呢?不过,SQLITE的数据库,不在于扩展名的,.db和.db3没什么太大区别,像我可以改成.config都可以用.

不过SQLITE都在发展,为什么不用Ver3版呢? 

7#   柠檬园主 于 2009-03-14 12:36:57 发表 | IP:119.109.28.*
测试一下CKEDITOR
Post a Comment~