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等