HSQLDB的研究与性能测试(与Mysql对比)

1.HSQLDB简介

HSQLDB数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议。相对其他数据库来说,其体积小,才563kb。仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容。在Java开源世界里,hsql是极为受欢迎的(就Java本身来说),JBoss应用程序服务器默认也提供了这个数据库引擎。由于其体积小的原因,又是纯Java设计,又支持SQL99,SQL2003大部分的标准,所以也是作为商业应用程序展示的一种选择。

2.HSQLDB的工作模式:

1)In-Process(Standalone)模式

主要是在一个JVM中使用,不能通过网络来访问数据库,数据存储格式为文本文件。

2)Memory-Only单机模式

主要是在一个JVM中使用,不能通过网络来访问数据库,只存储在内存中。

3)Memory-Only网络模式(本机访问)

数据存储在内存中,支持本地访问和网络访问,可应用于多个JVM间进行数据交换。

4)Server模式(本机访问)

类似我们常用的Mysql、oracle等数据库,支持本地访问和网络访问,数据存储格式为文本文件。

5)WebServer模式

和Server运行模式基本一样,只是支持了Http等协议,主要用于防火墙,其余的和Server模式完全一致。

3.测试的SQL语句:

6)CREATE

CREATE TABLE T0(NO INTEGER,a CHAR(20),b CHAR(20),c CHAR(20),d CHAR(20),e CHAR(20),f CHAR(20),g CHAR(20),h CHAR(20),i CHAR(20),j CHAR(20),k CHAR(20),l CHAR(20),m CHAR(20),n CHAR(20),o CHAR(20),p CHAR(20),q CHAR(20),r CHAR(20),s CHAR(20),t CHAR(20));

7)INSERT

INSERT INTO T0 VALUES (0,'00','01','02','03','04','05','06','07','08','09','010','011','012','013','014','015','016','017','018','019');

8)SELECT

select * from T0;

9)SELECT.all

select a,b,c,d,e from T0

10)SELECT.join

select tmp1.No no1,tmp2.NO no2 from T0 tmp1,T0 tmp2 where (tmp1.NO%5=0) and (tmp2.NO-tmp1.NO)=4;

4.测试数据记录表:

字段个数

测试用例

测试次数(次)

In-Process(Standalone)模式耗时(ms)

Memory-Only单机模式耗时(ms)

Memory-Only网络模式(本机访问)耗时(ms)

Memory-Only网络模式(网络访问)耗时(ms)

Server模式(本机访问)耗时(ms)

Server模式(远程访问)耗时(ms)

Mysql(本机访问)耗时(ms)

Mysql(远程访问)耗时(ms)

21个

CREATE

20次

0

0

0

32

15

16

344

312

INSERT

10000次

984

844

1688

7343

1875

7938

2281

8969

SELECT

5000次

40531

40109

1156859

>20分钟,实在等不下去了

1181094

>20分钟,实在等不下去了

432563

782437

SELECT

1000次

4234

4703

92031

667359

SELECT

100次

468

469

9031

67328

11个

CREATE

20次

0

0

INSERT

10000次

672

576

SELECT

5000次

27641

28672

SELECT

1000次

5个

CREATE TABLE T0(NO INTEGER PRIMARY KEY,a CHAR(20),b CHAR(20),c CHAR(20),d CHAR(20),e CHAR(20));

20次

0

0

0

312

INSERT INTO T0 VALUES (0,'00','01','02','03','04');

10000次

375

406

1203

1985

select * from T0;

5000次

21968

19860

select * from T0;

1000次

25828

select * from T0;

100次

512

2594

select a,b,c,d,e from T0

5000次

19313

select a,b,c,d,e from T0

100次

391

2266

select tmp1.No no1,tmp2.NO no2 from T0 tmp1,T0 tmp2 where (tmp1.NO%5=0) and (tmp2.NO-tmp1.NO)=4;

100次

不支持%

226047

select tmp1.No no1,tmp2.NO no2 from T0 tmp1 join T0 tmp2 on (tmp2.NO-tmp1.NO)=4;

1次

32062

11219

select tmp1.No no1,tmp2.NO no2 from T0 tmp1 join T0 tmp2 on mod(tmp1.NO,5) = 0 and (tmp2.NO-tmp1.NO)=4 ;

1次

6360

2078

select tmp1.No no1,tmp2.NO no2 from T0 tmp1 join T0 tmp2 on tmp1.NO>50 and (tmp2.NO-tmp1.NO)=4 ;

1次

32063

36031

10000

select No from T0 where mod(NO,5) = 0 ;

100次

1328

688

select No from T0 where NO>50 ;

100次

250

1719

select No from T0 where NO>50 and NO<900;

100次

94

203

delete from T19 where no>=0 and no<=0(为NO创建了索引)

10000次

344

328

1063

1141

1547

delete from T19 where no>=0 and no<=0(没有为NO创建了索引)

10000次

2282

2125

3156

3484

2359

update T19 set a=123 where no>=0 and no<=0(为NO创建了索引)

10000次

1610

750

1515

3078

2218

update T19 set a=123 where no>=0 and no<=0(没有为NO创建了索引)

10000次

4297

2734

3656

5594

2547

21个

CREATE

20次

0

16

31

32

16

16

328

313

INSERT

500次

125

78

172

421

141

734

156

453

SELECT

500次

234

250

8078

17438

10078

18125

1078

3234

16个

CREATE

20次

15

0

16

31

31

16

312

344

INSERT

500次

110

78

156

391

125

122

157

469

SELECT

500次

218

219

5890

13250

6329

13422

859

2515

11个

CREATE

20次

16

0

16

15

0

16

312

328

INSERT

500次

78

79

156

344

109

406

156

453

SELECT

500次

172

203

3469

7391

1985

7438

610

1906

6个

CREATE

20次

0

0

15

15

0

16

312

313

INSERT

500次

78

63

141

329

109

672

156

437

SELECT

500次

141

156

1516

3968

969

3937

469

1407

从上表可见:

1)支持远程访问时,执行CREATE、INSERT语句,HSQLDB明显比MYSQL具有优势。

2)支持远程访问时,执行SELECT查询语句,MYSQL比HSQLDB具有优势。

3)“Memory-Only网络模式”和“Server模式”在效率上差别不明显。

4)“In-Process(Standalone)模式”和“Memory-Only单机模式” 在效率上差别不明显。

5)只允许单机访问时,HSQLDB明显比MYSQL具有明显的优势。(写速度2:1,读速度4:1)

6)HSQLDB对JOIN查询的效率显著不如MYSQL

hsqldb和mysql_HSQLDB的研究与性能测试(与Mysql对比)相关推荐

  1. memcached mysql 性能测试_memcached +mysql+php 测试例子

    最近看了看memcached 缓存 mysql,经过一段时间的研究·把自己测试方法写出来,给像我一样的初学者用~ 我的环境是 nginx + php-fpm + apc + mysql 编译安装mem ...

  2. 基于图像处理的数码印花喷墨墨滴形状规范的研究(Python+OpenCV+Mysql)

    大体思路:由于墨滴的不同参数会对墨滴的形态产生一定的影响,故如果通过研究墨滴的形态则通过海量的数据就可以大概确定墨滴的各项参数指标的范围.通过OpenCV对墨滴的喷出的形状进行图像处理,对墨滴图像进行 ...

  3. influxdb mysql对比_InfluxDB读写性能测试

    这里将告诉您InfluxDB读写性能测试,教程操作步骤: 今天进行了InfluxDB和MySQL的对比测试,这里记录下结果,也方便我以后查阅. 操作系统: CentOS6.5_x64InfluxDB版 ...

  4. 性能测试--【MySQL】Sysbench 性能压测

    合成自:http://linuxperformance.top/index.php/archives/83/ https://blog.csdn.net/notbaron/article/detail ...

  5. mysql研究内容_基于MySQL数据库的数据管理的研究

    [摘 要]MySQL 是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言,即结构化查询语言进行数据库管理.缓存管理是对于文件数据在内存中的特殊管理,基于内存管理,向 ...

  6. 数据库性能测试(mysql)

    文章目录 常见的数据库指标包括 为什么不要问我DB极限QPS/TPS mysql查看性能常用命令 MySQL基准测试 为什么要做mysql基准测试 Mysql性能测试工具 mysqlslap sysb ...

  7. 风机性能测试的软件设计,风机性能测试系统的设计与研究

    风机性能测试系统的设计与研究 风机性能测试系统的设计与研究风机性能测试系统的设计与研究风机在植保机械上的应用非常广泛,风机的性能直接影响到风送式植保机械的射程.药液雾化性能.雾滴穿透能力及防飘移性能, ...

  8. 性能测试的重要意义(一)

    ♦我是一下下面几个方面来理解的: 1.秒的性能对于顾客的意义? 2.性能测试的重要意义 3.什么是软件的性能? 4.软件的性能测试是什么? 5.功能测试和性能测试对比? 6.项目组不同角色眼中的软件性 ...

  9. 聚氯乙烯增韧改性研究新进展

    摘 要:概述了聚氯乙烯(PVC)增韧改性的机理及主要的增韧改性方法,重点介绍了CaCO3.SiO2等纳米粒子在聚氯乙烯增韧改性中的研究进展,本文对近年来增韧PVC的制备方法增韧机理和发展趋势进行了说明 ...

最新文章

  1. GitHub开源:一键生成前后端代码神器
  2. GUN sed高级用法,sed脚本编写
  3. 怎样测试运算放大器的输入失调电压?
  4. pam_mysql模块安装
  5. 如何使用SAT trace一个正在运行的程序
  6. java文件端点续传效果图_Java单依赖性Dockerized HTTP端点
  7. LeetCode 926. 将字符串翻转到单调递增(动态规划)
  8. 咨询的真相5:咨询业的“前世今生”
  9. 亚马逊的PuTTY连接AWS出现network error connection refused,终极解决方案。
  10. jetty-maven-plugin
  11. MySQL:设置字段默认为当前时间
  12. 【智能家居v1.0项目】C#实现scoket通信
  13. MySQL 函数:IF(expr,v1,v2) 判断
  14. Keil(C51)的安装与注册
  15. 【015】基于51单片机的LCD1602流动字符串proteus仿真设计
  16. 点云配准ICP算法推导,SVD分解
  17. 如何利用DTM预览功能来验证新版本的配置是否正确?
  18. 啥水平?谷歌程序员:我用东北方言编程
  19. 联想sr550服务器虚拟机,联想(Lenovo)SR550
  20. 我辞职了准备系统学习新知识和技提升自己

热门文章

  1. PyTorch 深度学习:38分钟快速入门——RNN 做图像分类
  2. 简单理解操作系统中的PV操作
  3. 谁与争锋,2020腾讯广告算法大赛初赛正式启动
  4. mysql运维技巧_​mysql初级运维使用技巧
  5. word 段显示在页面最下方_最快速地把同一内容插入到Word文档不同页面的相同位置...
  6. java代码执行linux命令_怎么用java代码运行linux命令
  7. 使用Sonar管理代码质量(一)–简述与安装
  8. 283EEZOJ #89 Cow Tennis Tournament
  9. 深入理解虚拟机之虚拟机类加载机制
  10. Linux iptables 防火墙常用规则