6.2 H2测试方案
6.2.1 测试环境
主机: 操作系统: Windows Server 2003 Enterprise Edition SP2;
CPU: Intel Dual-Core 2.5GHz;
内存: 3.99GB内存
测试目标版本:H2database 1.1.110
6.2.2 测试数据
测试数据库表employee结构如下
字段名 | 类型 |
ID(PK) | Integer |
Name | Varchar(20) |
Age | Varchar(20) |
departmentID | Varchar(20) |
测试数据库表department结构如下
字段名 | 类型 |
DeptID(PK) | Integer |
Dept | Varchar(20) |
mangerID | Integer |
测试数据库表salary结构如下
字段名 | 类型 |
ID(PK) | Integer |
F1 | varchar(255) |
F2 | varchar(255) |
F3 | varchar(255) |
F4 | varchar(255) |
F5 | varchar(255) |
F6 | varchar(255) |
F7 | varchar(255) |
F8 | varchar(255) |
F9 | int |
6.2.2 测试过程
使用Java编写了测试工程,启动测试程序后:
l 50000条级别的测试:先分别插入到employee表、department表、alary表中50000、和1000、50000条数据,然后执行一系列的测试
l 100w条级别的测试:先分别插入到employee表、department表、alary表中1000000、和1000、1000000条数据,然后执行一系列的测试
6.2.3 测试结果
用例名 | 10w(条) | 100w(条) | 100w(条)10个并发线程 |
初始插入时间 | 5.43 | 50.47 |
|
初始插入内存 (KB) | 12376 | 12834 |
|
插入1条记录 | 0 | 0 |
|
插入5000条记录 | 0.4 | 0.39 | 2.95 |
查询1条记录(有索引) | 0 | 0 |
|
查询1条记录(无索引) | 0.71 | 6.95 |
|
查询5000条记录(有索引) | 0.015 | 0.1 | 0.7 |
查询1*5000条记录(有索引) |
| 0.23 | 1.26 |
查询5000条记录(无索引) | 0.73 | 7.2 |
|
查询全部记录 | 0.86 | 8.35 |
|
多表查询1条记录 | 0 | 0 |
|
多表查询5000条记录 | 0.016 | 0.016 |
|
更新1条记录(有索引) | 0 | 0 |
|
更新1条记录(无索引) | 0.45 | 4.62 |
|
更新5000条记录(有索引) | 0.16 | 0.18 | 2 |
更新1*5000条记录(有索引) |
| 0.15 | 1.7 |
更新5000条记录(无索引) | 0.62 | 5.1 |
|
删除1条记录(有索引) | 0 | 0 |
|
删除1条记录(无索引) | 0.68 | 6.6 |
|
删除5000条记录(有索引) | 0.1 | 0.12 | 1.1 |
删除1*5000条记录(有索引) |
| 0.13 | 0.9 |
删除5000条记录(无索引) | 0.77 | 6.95 |
|
嵌套查询(分组统计Group by) | 0.77 | 7.55 |
|
启动时间 | 0.11 | 0.2 |
|
测试结论:
优点:
1. 数据库小巧灵活;
2. 支持JDBC,对SQL支持良好,并支持内存模式;
3. 占用系统资源较少,启动较快;
4. 数据库支持并发访问;
5. 索引查询更新速度快;
缺点:
1. 大数量访问优势不明显,与常用数据库基本一致;
2. 无索引情况下速度较慢,与数据库的数据量成正比;