posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

(搬运工)常用内存数据库介绍(四)

Posted on 2012-07-20 16:55 点点滴滴 阅读(425) 评论(0)  编辑 收藏 引用 所属分类: 10 服务器

4.5           H2 Database

       h2Thomas 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
  •  
    1. 嵌入式应用。有一个项目在为.Net使用H2,使用CLI重新编译H2。还没有深入关注。
    2. ODBC。但性能一般。

4.5           其他内存数据库

包括Derby, HSQLDB

(JavaEye对字数的限制,请见下一章 5 内存数据库之比较)