hsqldb和mysql_HSQLDB的研究与性能测试(与Mysql对比)
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对比)相关推荐
- memcached mysql 性能测试_memcached +mysql+php 测试例子
最近看了看memcached 缓存 mysql,经过一段时间的研究·把自己测试方法写出来,给像我一样的初学者用~ 我的环境是 nginx + php-fpm + apc + mysql 编译安装mem ...
- 基于图像处理的数码印花喷墨墨滴形状规范的研究(Python+OpenCV+Mysql)
大体思路:由于墨滴的不同参数会对墨滴的形态产生一定的影响,故如果通过研究墨滴的形态则通过海量的数据就可以大概确定墨滴的各项参数指标的范围.通过OpenCV对墨滴的喷出的形状进行图像处理,对墨滴图像进行 ...
- influxdb mysql对比_InfluxDB读写性能测试
这里将告诉您InfluxDB读写性能测试,教程操作步骤: 今天进行了InfluxDB和MySQL的对比测试,这里记录下结果,也方便我以后查阅. 操作系统: CentOS6.5_x64InfluxDB版 ...
- 性能测试--【MySQL】Sysbench 性能压测
合成自:http://linuxperformance.top/index.php/archives/83/ https://blog.csdn.net/notbaron/article/detail ...
- mysql研究内容_基于MySQL数据库的数据管理的研究
[摘 要]MySQL 是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言,即结构化查询语言进行数据库管理.缓存管理是对于文件数据在内存中的特殊管理,基于内存管理,向 ...
- 数据库性能测试(mysql)
文章目录 常见的数据库指标包括 为什么不要问我DB极限QPS/TPS mysql查看性能常用命令 MySQL基准测试 为什么要做mysql基准测试 Mysql性能测试工具 mysqlslap sysb ...
- 风机性能测试的软件设计,风机性能测试系统的设计与研究
风机性能测试系统的设计与研究 风机性能测试系统的设计与研究风机性能测试系统的设计与研究风机在植保机械上的应用非常广泛,风机的性能直接影响到风送式植保机械的射程.药液雾化性能.雾滴穿透能力及防飘移性能, ...
- 性能测试的重要意义(一)
♦我是一下下面几个方面来理解的: 1.秒的性能对于顾客的意义? 2.性能测试的重要意义 3.什么是软件的性能? 4.软件的性能测试是什么? 5.功能测试和性能测试对比? 6.项目组不同角色眼中的软件性 ...
- 聚氯乙烯增韧改性研究新进展
摘 要:概述了聚氯乙烯(PVC)增韧改性的机理及主要的增韧改性方法,重点介绍了CaCO3.SiO2等纳米粒子在聚氯乙烯增韧改性中的研究进展,本文对近年来增韧PVC的制备方法增韧机理和发展趋势进行了说明 ...
最新文章
- GitHub开源:一键生成前后端代码神器
- GUN sed高级用法,sed脚本编写
- 怎样测试运算放大器的输入失调电压?
- pam_mysql模块安装
- 如何使用SAT trace一个正在运行的程序
- java文件端点续传效果图_Java单依赖性Dockerized HTTP端点
- LeetCode 926. 将字符串翻转到单调递增(动态规划)
- 咨询的真相5:咨询业的“前世今生”
- 亚马逊的PuTTY连接AWS出现network error connection refused,终极解决方案。
- jetty-maven-plugin
- MySQL:设置字段默认为当前时间
- 【智能家居v1.0项目】C#实现scoket通信
- MySQL 函数:IF(expr,v1,v2) 判断
- Keil(C51)的安装与注册
- 【015】基于51单片机的LCD1602流动字符串proteus仿真设计
- 点云配准ICP算法推导,SVD分解
- 如何利用DTM预览功能来验证新版本的配置是否正确?
- 啥水平?谷歌程序员:我用东北方言编程
- 联想sr550服务器虚拟机,联想(Lenovo)SR550
- 我辞职了准备系统学习新知识和技提升自己
热门文章
- PyTorch 深度学习:38分钟快速入门——RNN 做图像分类
- 简单理解操作系统中的PV操作
- 谁与争锋,2020腾讯广告算法大赛初赛正式启动
- mysql运维技巧_​mysql初级运维使用技巧
- word 段显示在页面最下方_最快速地把同一内容插入到Word文档不同页面的相同位置...
- java代码执行linux命令_怎么用java代码运行linux命令
- 使用Sonar管理代码质量(一)–简述与安装
- 283EEZOJ #89 Cow Tennis Tournament
- 深入理解虚拟机之虚拟机类加载机制
- Linux iptables 防火墙常用规则