内存数据库fastdb的性能测试报告

IBM AIX 服务器上

< > 利用 SUBSQL 接口手工进行测试

----------<Some test Data>-----------------------------------------

1.Record(int4,char const*)

dbDatabase db(dbDatabase::dbAllAccess, 16*1024); // 96Mb page pool

Insert 50000 records,elapsed time: 1 seconds

Insert 100000 records,elapsed time: 2 seconds  

insert 1000000 records,elapsed time: 9 seconds

Insert 10000000 records,elapsed time: 120 seconds

dbDatabase db(dbDatabase::dbAllAccess, 160*1024); // 960Mb page pool

Insert 50000 records,elapsed time: 1 seconds

Insert 100000 records,elapsed time: 1 seconds

Insert 1000000 records,elapsed time: 8 seconds

Insert 10000000 records,elapsed time: 124 seconds

dbDatabase db(dbDatabase::dbAllAccess, 160*1024); // 960Mb page pool

db.setConcurrency(10);

Insert 10000000 records,elapsed time: 116 seconds

然后导入数据( INFO_GSM, BILL_DATA USER_SPECIAL_NUMBER )【来源于 172.18.1.30 数据库】

Update 100000 records,elapsed time: 1 seconds

Update 1000000 records,elapsed time: 9 seconds

Query 1000000 records,elapsed time: 2 seconds (多重查询条件)

Query 10000000 records,elapsed time: 1 seconds (唯一值查询条件)

以上初略的数据可以看出来(服务器响应慢),其速度比普通磁盘数据库是高出至少一个数量级的。

< > 代码测试(效率上基本不存在问题,主要是安全性能测试)

自编代码测试: FTP::172.18.34.168\/data0/ibas/jianguoh/fastdb/examples/FastdbTest.cpp

源码如右:

数据库文件: FTP::172.18.34.168\/data0/ibas/jianguoh/fastdb/ FastdbTest.fdb

1、 Complex and Large transaction processing

多次对于大规模的数据进行增,删,查,改后进行事务处理,没有发现异常。(跑的测试代码) ( 先查询,然后更改,然后插入部分记录,最后再有选择地删除部分数据 )

2、 Concurrent transaction’s Safe

Concurrent Threads can run safely in my lots of tests!( Update 模式进程和大量 ReadOnly 模式线程(同一个进程)并发操作 )

< > 因为对于开源代码测试我们没有任何规范和流程,测试只能够依靠测试者自己当时的想法和定义来测

附:

本来就很好的内存机制,再加上多种高性能的查询优化技术,其效率应该是没什么问题了。

以下是一国外文献上更翔实直观的深度效率测试报告图:(其中 MS-SQL 指的是 Microsoft SQL Server 2000 磁盘数据库

内存数据库fastdb的性能测试报告_第1张图片

内存数据库fastdb的性能测试报告_第2张图片


你可能感兴趣的:(内存数据库fastdb的性能测试报告)