Posted on 2012-07-20 16:55
点点滴滴 阅读(459)
评论(0) 编辑 收藏 引用 所属分类:
10 服务器
4.5 H2 Database
h2是Thomas Mueller提供的一个开源的、纯java实现的关系数据库,官方网站:http://www.h2database.com/html/main.html。
它的主要特性是:
- 非常速的数据库引擎
- 开源、免费数据库
- 支持 JDBC和ODBC API,支持SQL
- 支持嵌入式,服务器和集群模式。支持内存数据库。
- 提供基于浏览器的管理控制台
- 整个应用本身只有1MB左右。
其他特性还包括
- 基于磁盘或内存的数据库、表,支持只读数据库、临时表。
- 两段式事务支持
- 支持多个连接。表级别的锁。
- 基于成本的优化,为复杂查询使用遗传算法,零管理。
- 滚动的、可修改的result set支持。支持大结果集、外部结果排序。
- 加密数据库(AES或XTEA),SHA-256密码加密。
性能比较(摘自h2database网站)
嵌入模式下H2的性能比较
Test Case |
Unit |
H2 |
HSQLDB |
Derby |
Simple: Init |
ms |
610 |
657 |
3187 |
Simple: Query (random) |
ms |
297 |
312 |
1828 |
Simple: Query (sequential) |
ms |
203 |
266 |
1766 |
Simple: Update (random) |
ms |
1078 |
1484 |
22031 |
Simple: Delete (sequential) |
ms |
234 |
281 |
7407 |
Simple: Memory Usage |
MB |
6 |
7 |
11 |
BenchA: Init |
ms |
859 |
438 |
4047 |
BenchA: Transactions |
ms |
5266 |
2875 |
17500 |
BenchA: Memory Usage |
MB |
9 |
14 |
10 |
BenchB: Init |
ms |
4016 |
2687 |
16875 |
BenchB: Transactions |
ms |
2609 |
3282 |
4250 |
BenchB: Memory Usage |
MB |
9 |
10 |
8 |
BenchC: Init |
ms |
891 |
594 |
5766 |
BenchC: Transactions |
ms |
4359 |
75438 |
11718 |
BenchC: Memory Usage |
MB |
9 |
18 |
9 |
Executed statements |
# |
594255 |
594255 |
594255 |
Total time |
ms |
20422 |
88314 |
96375 |
Statements per second |
# |
29098 |
6728 |
6166 |
.Net使用H2
-
- 嵌入式应用。有一个项目在为.Net使用H2,使用CLI重新编译H2。还没有深入关注。
- ODBC。但性能一般。
4.5 其他内存数据库
包括Derby, HSQLDB等
(JavaEye对字数的限制,请见下一章 5 内存数据库之比较)