Sqlite   发布时间:2022-05-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQLITE和ACCESS性能对比测试大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

一般来说,传统的桌面应用,尤其是ms平台下,多用access数据库,近年,sqllite越来越流行,而且其对手机终端的支持,更使得起使用率越来越高.access和sqlite有太多的相似之处.可他们性能究竟怎么样呢,我查询了一些对比资料,如下:

sqlite介绍
在介绍System.Data.sqlite之前需要介绍一下sqlite,sqlite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义、表、索引和数据本身)都保存在一个单一的文件中。并且,sqlite是一个用C实现的类库,它在内存消耗、文件体积、简单性方面都有不错的表现,如果数据在10W条以下,查询速度也是相当快的。
sqlite具有以下特征:
实现多数sql92的标准,包括事务(原子性、一致性、隔离性和持久性)、触发器和大多数的复杂查询。
不对插入或者更新的数据进行类型检查,你可以将字符串插入到整数列中(这个可能让有些用户不太适应)。
支持Windows/linux/Unix等主流系统,还支持嵌入式系统如AndroID或windows Mobile。
System.Data.sqlite
System.Data.sqlite是sqlite的加强版,它可以无需.NET Framework支持,由于它内部包含了一个ADO.NET 2.0引擎,所以.NET开发人员可以利用System.Data.sqlite方便地开发.NET程序。
System.Data.sqlite及sqlite也有一些限制,比如不支持行级及表级锁,当一个连接锁定数据库以用于写入数据,其它的数据库连接只能等待那个连接操作完成之后进行读写操作,sqlite.NET尝试在超时期内多次尝试。

ACCESS 插入性能测试:
平台:SYS:WINXP;cpu:2*1.6GHZ;RAM:1G;APP:VC+ADO
1.单条显式事务:
1 00条: 0.55S
1000条: 5s
10000条: 50s

2.单条非显式事务:
100条:31ms
1000条:156ms
10000条:1500ms

3.批量事务:
1 00条:16ms
1000条:141ms
10000条:1469ms

以上可以看出,ACCESS单条非显式事务插入的时间几乎和批量事务的插入时间一样,这大概就是网上得出ACCESS快于sqlite的原因吧,但是;单条非显式事务的

方式只能用单连接,如果有多个连接并发访问,则会出现严重问题,在一个链接插入后的相当长一段时间内(有时数S),其它链接都无法插入数据库。可以推理

ADO+ACCESS是采用了一种类似CACHE的做法缓存了操作,但是却一直锁住数据库。单条的显式事务可以保证多链接的访问,但是速度会慢很多,下面再对比一下

sqlitE的测试性能;
sqlitE PC平台插入性能测试:
平台:SYS:WINXP+VMWARE+FEDORA7(liNUX2.6.21);cpu;1.6GHZ;RAM:412M; APP:C+sqlitE
1.单条显式事务(sqlitE默认为每个操作开启事务)
100条:0.587s
1000条:6.962s
10000条:56.004s

2.批量事务
100条:81ms(可能误差较大)
1000条:124ms
10000条:1257ms

sqlitE 嵌入式平台插入性能测试:
平台:SYS:liNUX2.6.14;cpu:HI3512 ARM9 200MHZ级别;RAM:32M,ROM:32M nor FLASH;APP:C+sqlitE
1.单条显式事务(sqlitE默认为每个操作开启事务)
100条:1.98s
1000条:19.97s
10000条:34.63s

2.批量事务
100条:0.15s
1000条:0.89s
10000条:8.24s

由这个测试可以看出,在微软平台下,access和sqlite性能基本相当,而在linux平台下,sqlite的并发性能要高出不少。

大佬总结

以上是大佬教程为你收集整理的SQLITE和ACCESS性能对比测试全部内容,希望文章能够帮你解决SQLITE和ACCESS性能对比测试所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。