4.5 H2 Database h2是Thomas Mueller提供的一个开源的、纯java实现的关系数据库,官方网站:http://www./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 内存数据库之比较)
|