分享

常用内存数据库介绍(六)

 2010期待2010 2010-12-02

 

6.  性能测试

下面分别对SQLiteH2进行了性能测试

 

6.1               SQLite测试方案

6.1.1   测试环境

       主机:    操作系统:    Windows XP;

CPU    Intel Dual 2.2GHZ;

内存:    1.99GB内存

       测试目标版本:SQLite 3.6.12

      

6.1.2   测试数据

测试数据库表ip_table结构如下

 

字段名

类型

Id(PK)

Integer

Dst_ip

Varchar(20)

Agent_ip

Varchar(20)

Dst_mac

Varchar(20)

Dst_port

Integer

Dst_vlan

Varchar(20)

 

 

6.1.2   测试过程

使用C++编写了测试工程,启动测试程序后,先分别插入50000条和1000000条数据,然后执行一系列的测试

6.1.3   测试结果

 

用例名

5w(条)单个线程

100w(条)单个线程

100w(条)10个并发线程

初始插入时间

2s

45s

 

初始插入时间(不加索引)

1.782s

38.109s

 

插入1条记录

100纳秒以内

100纳秒以内

0.0016s

插入1000条记录

0.047s

0.047s

0.453s

插入1000条记录(无索引)

0.6s

1s

11.39s

查询一条记录

100纳秒以内

100纳秒以内

0.0033s

查询一条记录(不使用索引)

0.016s

0.375s

2.859s

查询1000条记录

0.016s

0.391s

2.828s

查询1000条记录(不使用索引)

0.015s

0.375s

2.906s

查询全部记录分组统计Group by

0.688s

15.473s

 

查询1000 条(结果排序 )

0.031s

0.39s

2.453s

查询所有记录(结果排序)

0.766s

16.203s

33.594s

更新一条记录

100纳秒以内

100纳秒以内

0.0043s

更新一条记录(不使用索引)

0.016s

0.359s

2.719s

更新10000条数据

0.062s

0.047s

 

更新10000条数据(无索引)

0.016s

0.375s

2.719s

删除一条数据

100纳秒以内

100纳秒以内

0.0041s

删除一条条数据(无索引)

0.125s

5.047s

 

删除10000条数据

0.078s

0.078s

 

删除10000条数据(无索引)

79-125ms

5.031s

 

结论:

1.       SQLlite内存数据库的处理速度很快;

2.       SQLlite内存数据库在查找数据时有索引的情况下,查询、更新、删除速度快;

3.       SQLlite内存数据库并发性比较差,可以认为并发能力为0

4.       SQLlite内存数据库占用内存空间,100w条数据在40M左右(创建单个索引,6个字段)

5.       针对数据流探针来说,5w条数据SQLlite归并的速度在0.688s,可以尝试将部分功能用数据库归并实现。

6.       SQLLite支持自定义函数,效率没有测试,应该和他提供的API效率差不多

7.       SQLLite支持复合sql语句

 

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多