比较令人惊叹的FastDB和SQLite的RAMDISK内的性能对比

前端之家收集整理的这篇文章主要介绍了比较令人惊叹的FastDB和SQLite的RAMDISK内的性能对比前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

小兵这段时间在优化一个程序,现在程序的效率问题集中在了数据库上。

经选型,最初使用的是sqlite,后感觉效率实在不满意,现在在测试其和FastDB这种内存数据库性能差别。

真是不是不知道,一试吓一跳!

先说明测试环境:Win7X64,本本cpuT9500 2.6G双核,内存8G,VS2010 VC

测试数据库,一个8字段的sqlite库,没有建索引,数据总量320万。

用IMDisk建了一个内存盘,800M,NTFS非压缩格式。

下面放测试结果,并逐步解释测试的内容和步骤。

HardDisk CopyDataToFastDB :130854 Ms

这一测试是在硬盘内完成的,主要是把sqlite的库内的数据拷到FastDB内。

过程是每Insert 2W条数据到FastDB内,就Commit一次,为什么是2W条,因为太大了程序就会崩溃……

复制完成后,把硬盘内的sqlite和FastDB拷贝到RAMDisk内。

然后统计了总耗时。

Mem CopyDataToFastDB :116471 Ms

这一测试是在内存盘内完成的。先把sqlite的整个库拷贝到RAMDisk内,然后和上面的测试完全一样,只是操作从硬盘内变成了RAMDisk内而已。

计算了总耗时。



HardDisk Test Start... 以下的操作在硬盘内完成
sqlite select 10 times :16629 Ms,count: 2809 Select10次耗时,每次返回数据集的数量
fastdb select 10 times :5086 Ms,count: 2808 Select10次耗时,每次返回数据集的数量
sqlite update 10 times :16302 Ms,count: 2809 Update10次耗时,每次返回数据集的数量
fastdb update 10 times :6505 Ms,count: 2808 Update10次耗时,每次返回数据集的数量
sqlite insert 10 times :156 Ms,count: 70 Insert10次耗时,每次返回数据集的数量
fastdb insert 10 times :874 Ms,count: 69 Insert10次耗时,每次返回数据集的数量


Mem Test Start... 以下的操作在RAMDisk内完成。解释同上
sqlite select 10 times :17269 Ms,count: 2809
fastdb select 10 times :5039 Ms,count: 2808
sqlite update 10 times :16130 Ms,count: 2809
fastdb update 10 times :5912 Ms,count: 2808
sqlite insert 10 times :15 Ms,count: 70
fastdb insert 10 times :718 Ms,count: 69

可见,FastDB无论数据库文件在内存盘内还是在硬盘上,其测试结果都差别不大。sqlite结果也总体也不大,但是明显的,其Insert的速度在内存盘内快了10倍。

源码附后:也可以作为一个sqlite和FastDB的使用方法的教程来看的,呵呵。

http://download.csdn.net/source/2885415

原文链接:https://www.f2er.com/sqlite/202794.html

猜你在找的Sqlite相关文章