小兵这段时间在优化一个程序,现在程序的效率问题集中在了数据库上。
经选型,最初使用的是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 sel