有关SQLite数据库的一些实证数据,有一定历史比较和参考意义

来源:互联网 发布:雄狮网络刷qb真的假的 编辑:程序博客网 时间:2024/04/29 10:38

       转:http://blog.csdn.net/mynicedream/article/details/2252398

       说明:以下这文章是2008年写的。也就是说,数据库的版本也基本是2008年左右的,现在已经过去N年了,数据库都发生了很多变化,性能也有很大提升。我用JULIA脚本insert220万条数据进入SQLite现在大约需要30秒,应有很大提升。大家可以比较。

      ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      转文:

       最近要做一个项目,需要用到实时数据库,PI太贵了,想找一个免费的,实在不行就只能自己编了。找了半天,找到了FastDB、BerkeleyDB和SQLite.

        FastDB是内存型数据库,据说很快,但数据库大小不能大于物理内存,不然。。。反正我看到这就走了,我可是要一秒内处理几千个数据,还要保存8小时以上的啊!BerkeleyDB和SQLite倒没有数据库大小不能大于物理内存的限制,我对他们的性能进行了测试,结果如下:

 

 
Berkeley DB
Sqlite
插入10000条记录耗时
0.08
0.42
插入100000条记录耗时
2.31
3.81
插入7200000条记录耗时
1024.34
249
插入57600000条记录耗时
12860.78
2155.14
插入172800000条记录耗时
48039.64
6352.06
10000条记录查1记录耗时
少于0.01
少于0.01
100000条记录查1记录耗时
少于0.01
少于0.01
7200000条记录查1记录耗时
少于0.01
少于0.01
57600000条记录查1记录耗时
0.03
0.16
172800000条记录查1记录耗时
0.03
0.09
10000条记录数据库大小
0.628M
0.527M
100000条记录数据库大小
5.29M
5.32M
7200000条记录数据库大小
516M
405M
57600000条记录数据库大小
3087.13M
3925.8M
172800000条记录数据库大小
11890.7M
10621.2M
*机器配置:Core2 E4500CPU2G内存 

       上表为两种数据库只建一个索引,Berkeley DB不支持事务、Sqlite支持事务情况下的数据,如果Berkeley DB打开事务支持,速度会下降很大的数量级,根本不能满足需求。另外在程序崩溃后Berkeley DB数据库不可用,Sqlite数据库仍可正常使用。

0 0
原创粉丝点击