`
titan
  • 浏览: 113690 次
  • 性别: 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

    内存数据库简介 内存数据库是一种将整个数据库存储在计算机的主存中,以提高数据库的性能和响应速度的技术。传统的数据库管理系统将所有数据存储在磁盘上,称为磁盘数据库(DRDB:Disk-Resident Database)。磁盘...

    常用内存数据库介绍

    下面,我们将深入探讨几种常用的内存数据库,包括它们的特点、应用场景以及为何它们能够在现代数据处理环境中占据一席之地。 ### 1. **Redis** Redis(Remote Dictionary Server)是最受欢迎的内存数据库之一,它...

    常用内存数据库的比较

    常用内存数据库的比较 内存数据库是一种新型的数据库管理系统,它将整个数据库放入内存中,以提高数据库的性能和响应速度。与传统的磁盘数据库相比,内存数据库具有很多优势,如快速的数据访问速度、低延迟、低成本...

    常用内存数据库介绍.pdf

    常用内存数据库介绍.pdf

    常用内存数据库比较

    内存数据库是一种将数据存储在内存中的数据库系统,其主要特点是高速读写性能,适用于需要快速响应和处理大量数据的应用场景。在JAVA开发中,有很多开源的内存数据库可以选择,本篇文章将对比分析这些数据库的特点、...

    内存数据库

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

    内存数据库 实时交易系统的催化剂

    内存数据库是现代信息技术领域中的一个重要概念,特别是在实时交易系统中,它扮演着催化剂的角色,显著提高了数据处理的速度和效率。本文将深入探讨内存数据库的基本原理、优势、应用场景以及与实时交易系统的结合。...

    linux下内存数据库

    哈希表是内存数据库中常用的一种数据结构,它在Linux环境下扮演着关键角色。 哈希表,又称散列表,是通过哈希函数将数据映射到一个固定大小的数组中。这个函数能够将任意长度的输入(如字符串)转化为固定长度的...

    sorted_base.zip_内存数据_内存数据库_实时内存数据

    描述提到的“排序的列表的基类一种实时内存数据库组织与管理方法”,意味着文件内容可能涉及一种特定的数据结构——排序列表,这是内存数据库中常用的数据组织方式,用于快速查找、插入和删除数据。排序列表通常基于...

    内存数据库PPT教案学习.pptx

    1. 数据映射:内存数据库会将常用数据表全部映射到主机共享内存中,同时为关键字段建立内存索引,以加速查询。 2. API接口:应用程序通过调用特定的内存数据库API,直接访问内存中的数据,而不是直接操作物理数据库...

    简易内存数据库(一)总述

    此外,对于源码和工具部分,文章可能还涵盖了开源内存数据库如Redis、Memcached等的简要分析,或者介绍了如何构建一个简单的内存数据库系统,包括数据结构的选择(如哈希表、B树等)和API设计等。 在本科班课程项目...

    oracle常用的数据库脚本

    - `ALTER SYSTEM`:调整数据库系统的参数,例如修改内存分配、日志文件位置等。 - `STARTUP/SHUTDOWN`:启动或关闭数据库实例。 2. **用户管理**: - `CREATE USER`:创建新的数据库用户。 - `GRANT/REVOKE`:...

    用于内存数据库的Hash索引的设计与实现

    Hash索引是数据库系统中一种常用的索引技术,尤其适合于内存数据库。它利用哈希函数将数据的键(key)转化为内存地址,使得数据的查找、插入和删除操作能在常数时间内完成,极大地提高了数据访问效率。Hash索引的...

    高性能内存数据库Redis(基础篇)

    作为一个内存数据库,它的主要特点是数据存取速度快,支持多种数据结构,且提供了丰富的持久化策略。在Java开发中,Redis的使用非常常见,能够显著提升应用程序的响应速度和整体性能。 1. 数据结构: Redis支持...

    内存数据库h2.jar

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

    vc实现Sqlite数据库(加密DB、内存DB、临时DB)

    在VC++中,你可以通过传递`:memory:`作为数据库路径来创建内存数据库。CSqlite类可能提供一个`OpenInMemoryDatabase()`方法,调用此方法将创建一个只存在于内存中的数据库实例。 3. **临时数据库**: 临时数据库...

    内存数据库在互联网余票查询中的应用.pdf

    【内存数据库在互联网余票查询中的应用】 随着互联网售票系统的普及,越来越多的旅客选择在线购票,这使得系统在高峰期承受巨大的并发请求压力。其中,余票查询作为关键功能,其性能直接影响用户体验。传统的磁盘...

    \"支持高性能模糊检索的内存数据库EMS\"分享总结

    【高性能模糊检索的内存数据库EMS】是一个专注于提供高效模糊查询能力的内存数据库系统。它针对大规模数据集,尤其是在需要快速响应复杂查询需求的场景下,展现出优越的性能。内存数据库因其将数据存储在内存中,...

    数据库维护常用SQL

    下面我们将介绍一些常用的数据库维护 SQL 语句。 一、查询 SQL 的资源消耗情况 在数据库中,SQL 语句的执行会消耗一定的资源,包括 CPU、内存、I/O 等。为了了解 SQL 语句的资源消耗情况,我们可以使用以下 SQL ...

Global site tag (gtag.js) - Google Analytics