最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-09 07:40:23
文档

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

HSQLDB的研究与性能测试(与Mysql对比):HSQLDB 的研究与性能测试(与Mysql对比) 1. HSQLDB 简介 HSQLDB 数据库是一款纯 Java 编写的免费数据库,许可是 BSD-style 的协议。相对其他数据库来说,其体积小,才 563kb 。仅一个 hsqldb.jar 文件就包括了数据库引擎,数据库驱动,还有其他用户界面
推荐度:
导读HSQLDB的研究与性能测试(与Mysql对比):HSQLDB 的研究与性能测试(与Mysql对比) 1. HSQLDB 简介 HSQLDB 数据库是一款纯 Java 编写的免费数据库,许可是 BSD-style 的协议。相对其他数据库来说,其体积小,才 563kb 。仅一个 hsqldb.jar 文件就包括了数据库引擎,数据库驱动,还有其他用户界面


HSQLDB 的研究与性能测试(与Mysql对比) 1. HSQLDB 简介 HSQLDB 数据库是一款纯 Java 编写的免费数据库,许可是 BSD-style 的协议。相对其他数据库来说,其体积小,才 563kb 。仅一个 hsqldb.jar 文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作

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对比):HSQLDB 的研究与性能测试(与Mysql对比) 1. HSQLDB 简介 HSQLDB 数据库是一款纯 Java 编写的免费数据库,许可是 BSD-style 的协议。相对其他数据库来说,其体积小,才 563kb 。仅一个 hsqldb.jar 文件就包括了数据库引擎,数据库驱动,还有其他用户界面
推荐度:
标签: 测试 对比 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top