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 内存数据库之比较)
分享到:
相关推荐
内存数据库简介 内存数据库是一种将整个数据库存储在计算机的主存中,以提高数据库的性能和响应速度的技术。传统的数据库管理系统将所有数据存储在磁盘上,称为磁盘数据库(DRDB:Disk-Resident Database)。磁盘...
下面,我们将深入探讨几种常用的内存数据库,包括它们的特点、应用场景以及为何它们能够在现代数据处理环境中占据一席之地。 ### 1. **Redis** Redis(Remote Dictionary Server)是最受欢迎的内存数据库之一,它...
常用内存数据库的比较 内存数据库是一种新型的数据库管理系统,它将整个数据库放入内存中,以提高数据库的性能和响应速度。与传统的磁盘数据库相比,内存数据库具有很多优势,如快速的数据访问速度、低延迟、低成本...
常用内存数据库介绍.pdf
内存数据库是一种将数据存储在内存中的数据库系统,其主要特点是高速读写性能,适用于需要快速响应和处理大量数据的应用场景。在JAVA开发中,有很多开源的内存数据库可以选择,本篇文章将对比分析这些数据库的特点、...
实现词法分析和语法分析的内存小容量数据库,主要用于学习编译原理
内存数据库是现代信息技术领域中的一个重要概念,特别是在实时交易系统中,它扮演着催化剂的角色,显著提高了数据处理的速度和效率。本文将深入探讨内存数据库的基本原理、优势、应用场景以及与实时交易系统的结合。...
哈希表是内存数据库中常用的一种数据结构,它在Linux环境下扮演着关键角色。 哈希表,又称散列表,是通过哈希函数将数据映射到一个固定大小的数组中。这个函数能够将任意长度的输入(如字符串)转化为固定长度的...
描述提到的“排序的列表的基类一种实时内存数据库组织与管理方法”,意味着文件内容可能涉及一种特定的数据结构——排序列表,这是内存数据库中常用的数据组织方式,用于快速查找、插入和删除数据。排序列表通常基于...
1. 数据映射:内存数据库会将常用数据表全部映射到主机共享内存中,同时为关键字段建立内存索引,以加速查询。 2. API接口:应用程序通过调用特定的内存数据库API,直接访问内存中的数据,而不是直接操作物理数据库...
此外,对于源码和工具部分,文章可能还涵盖了开源内存数据库如Redis、Memcached等的简要分析,或者介绍了如何构建一个简单的内存数据库系统,包括数据结构的选择(如哈希表、B树等)和API设计等。 在本科班课程项目...
- `ALTER SYSTEM`:调整数据库系统的参数,例如修改内存分配、日志文件位置等。 - `STARTUP/SHUTDOWN`:启动或关闭数据库实例。 2. **用户管理**: - `CREATE USER`:创建新的数据库用户。 - `GRANT/REVOKE`:...
Hash索引是数据库系统中一种常用的索引技术,尤其适合于内存数据库。它利用哈希函数将数据的键(key)转化为内存地址,使得数据的查找、插入和删除操作能在常数时间内完成,极大地提高了数据访问效率。Hash索引的...
作为一个内存数据库,它的主要特点是数据存取速度快,支持多种数据结构,且提供了丰富的持久化策略。在Java开发中,Redis的使用非常常见,能够显著提升应用程序的响应速度和整体性能。 1. 数据结构: Redis支持...
IT资料 常用软件 内存数据库 jar包
在VC++中,你可以通过传递`:memory:`作为数据库路径来创建内存数据库。CSqlite类可能提供一个`OpenInMemoryDatabase()`方法,调用此方法将创建一个只存在于内存中的数据库实例。 3. **临时数据库**: 临时数据库...
【内存数据库在互联网余票查询中的应用】 随着互联网售票系统的普及,越来越多的旅客选择在线购票,这使得系统在高峰期承受巨大的并发请求压力。其中,余票查询作为关键功能,其性能直接影响用户体验。传统的磁盘...
下面我们将介绍一些常用的数据库维护 SQL 语句。 一、查询 SQL 的资源消耗情况 在数据库中,SQL 语句的执行会消耗一定的资源,包括 CPU、内存、I/O 等。为了了解 SQL 语句的资源消耗情况,我们可以使用以下 SQL ...
【高性能模糊检索的内存数据库EMS】是一个专注于提供高效模糊查询能力的内存数据库系统。它针对大规模数据集,尤其是在需要快速响应复杂查询需求的场景下,展现出优越的性能。内存数据库因其将数据存储在内存中,...