`
titan
  • 浏览: 113069 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

 

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语句

 

分享到:
评论

相关推荐

    常用内存数据库介绍常用内存数据库介绍.doc

    常用内存数据库介绍常用内存数据库介绍

    常用内存数据库介绍

    常用内存数据库介绍

    常用内存数据库介绍.pdf

    常用内存数据库介绍.pdf

    常用内存数据库的比较

    什么是内存数据库,常用内存数据库,SQLite最佳试用场合,哪些场合适合使用其他的关系型数据库,内存数据库之比较,性能测试

    常用内存数据库比较

    JAVA常用开源内存数据库比较。让你能很轻松地在众多内存数据库中做出最好选择!

    内存数据库

    实现词法分析和语法分析的内存小容量数据库,主要用于学习编译原理

    内存数据库h2.jar

    IT资料 常用软件 内存数据库 jar包

    内存数据库和临时数据库

    一、内存数据库:  在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如:  ...

    SQLite 内存数据库学习手册

    一、内存数据库:  在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递”:memory:”,如: ...

    Informix数据库常用命令介绍

    Informix数据库服务器提供了...onmode 改变方式和共享内存 onparams 修改日志配置参数 onspaces 修改blobspace或Dbspace onstat 监控的运行 ontape 日志登录,archive创建和数据重装 onunload 以页为单位传送二进制数据

    SQLite教程(十):内存数据库和临时数据库

    一、内存数据库:  在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递”:memory:”,如: ...

    h2数据库功能介绍资料

    h2原版英文资料!h2是基于java的内存数据库,pdf主要是h2数据库功能介绍和说明,常用命令行用法,通脚本操作数据库!备份恢复说明!数据库升级

    Ado.Net常用数据库接口类

    SQL Server 的.NET 数据... 使用SqlDataAdapter,可以填充驻留在内存中的DataSet可用于查询和更新数据库。本文档包括了常用的数据库接口类,所有字段的说明和示例代码,一份文档足以让你掌握Ado.Net的常用编程技巧。

    数据库资料集合(包含了DB2,ORACLE,SYSDBASE和内存数据库的操作指南和SQL集合)

    个人搜集的包括了3大主流数据库的入门介绍,编程指南,常用sql集合等多方面内容。

    大数据常用数据库汇总.pdf

    (7)Aerospike:Aerospike数据库是⼀个键值存储,⽀持混合内存架构,通过强⼀致性和可调⼀致性保证数据的完整性。 3、⽂档数据库:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下⾯简单介绍⼏个 (1)...

    常用开源数据库连接池 文档和源码及jar包

    单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库...

    达梦数据库常用系统视图及查询语句.pdf

    v$lock:查看当前数据库中锁的信息 v$mem_pool:显⽰所有的内存池信息 V$deadlock_histor::记录死锁的历史信息 V$TABLESPACE:显⽰表空间信息,不包括回滚表空间信息 V$TRX:显⽰所有活动事务的信息。通过该视图...

    易语言-易语言编写内存微型数据库

    源码通过置入汇编代码并调用一些常用的API函数实现内存微型数据库。易语言内存微型数据库源码可临时保存数据。

Global site tag (gtag.js) - Google Analytics