java 内存数据库 开源_H2:开源内存数据库引擎

本资源由 伯乐在线 - 刘立华 整理

H2是一个开源的内存数据库。Java编写、快速、小巧(1.5MB jar包)还提供了Web控制台管理数据库内容。

d3f0c271243a6bef5a64c58b6ec65863.png

主要功能

非常快速的数据库引擎。

开源。

Java编写。

支持标准SQL、JDBC API。

支持嵌入式模式、服务器模式和集群。

强大的安全功能。

支持PostgreSQL的ODBC驱动。

多版本并发。

附加功能

支持基于硬盘或内存数据库和表、只读数据库、临时表。

支持事务(read committed),两步提交机制(2-phase-commit)。

多个连接,表级锁。

基于成本的优化、复杂查询采用遗传算法、零管理。

支持可滚动和可更新的结果集、大结果集、外部结果排序、函数可以返回结果集。

加密的数据库(AES)、SHA-256加密的密码、加密功能、SSL。

SQL支持

支持多schema、information schema(Support for multiple schemas, information schema)。

参照完整性/使用级联外键约束、check约束。

内连接和外链接、子查询、只读视图和内嵌视图。

触发器及Java函数/存储过程。

很多内置功能,包括XML和无损压缩。

广泛的数据类型,包括大对象(BLOB/CLOB)和数组。

队列和自增长的列、计算列(可用于基于索引的功能)。

支持ORDER BY、GROUP BY、HAVING、UNION、LIMIT、TOP。

支持排序规则,包括ICU4J库。

支持用户和角色。

兼容模式支持IBM DB2、Apache Derby、HSQLDB、MS SQL Server、MySQL、Oracle、和PostgreSQL等。

安全功能

包括对SQL注入问题的解决方案。

使用SHA-256和盐(SHA-256 and salt)认证用户密码。

对于服务器模式的连接,用户密码从不会以纯文本格式通过网络传输。

所有数据库文件(包括用于备份数据的脚本文件)可使用AES-128算法加密。

远程JDBC驱动支持通过TLS的TCP/IP连接。

内置的web服务器支持通过TLS连接。

密码使用char数组发送到数据库,而不是String。

其它功能和工具

体积小巧(小于1.5MB),低内存需求。

多种索引类型(b-tree、tree、hash)。

支持多维索引。

支持CSV文件。

支持链表,及一个内置的虚拟“range”表。

支持EXPLAIN PLAN声明;复杂的跟踪选项。

数据库关闭可以延迟或者禁用以提高性能。

自带基于web的控制台应用(已译成多国语言)。

数据库可以生成SQL脚本文件。

包含一个恢复工具,可以转储数据库内容。

支持变量(例如计算运行总和)。

自动重新编译预处理语句。

使用少量数据库文件。

为每一条记录和日志条目使用校验和以保证数据完整性。

经过充分测试(高覆盖率、随机压力测试)。

连接模式简介

支持以下三种模式:

嵌入式模式(使用JDBC的本地连接)。

服务器模式(使用JDBC或ODBC的通过TCP/IP的远程连接)。

混合模式(本地和远程连接同时存在)。

嵌入式模式

0b71c093edb44e3211484895e49586b7-240x300.png

在嵌入式模式下,应用程序使用和JDBC相同的JVM打开数据库。这是最快、最简单的连接方式。缺点是数据库任何时候只在一个虚拟机中打开。同时支持持久化和在内存中存储数据。没有同时打开数据库的数量限制,没有连接数限制。

服务器模式

45dbb364f46010521a44f5a980ff6428-300x173.png

当使用服务器模式时(也称作远程模式或者客户端/服务端模式),应用程序使用 JDBC或ODBC API以远程方式打开数据库。数据库服务器需要在相同或者另外的虚拟机,或者干脆另外一台计算机启动。 很多应用程序可以同时通过连接到这台服务器连接同一个数据库。在内部,该服务器进程以嵌入式模式打开多个数据库。 由于所有数据通过TCP/IP传输,服务器模式要比嵌入式模式慢一些。同时支持持久化和在内存中存储数据。每台服务器没有同时打开数据库的数量限制,没有 连接数限制。

混合模式

7a7f0cda93f0ac632184f426e8d8b51e-300x178.png

混合模式是嵌入式模式和服务器模式的组合。第一个应用程序在嵌入式模式中连接到数据 库,但也启动了一个数据库服务器,这样其他应用程序(运行在不同进程或虚拟机中)可以同时访问数据。本地连接像嵌入式模式一样快速,远程连接稍慢。 数据库服务器可以通过API,或者自动化(自动混合模式)启停。当使用自动混合模式时,所有要连接数据库的客户端可使用完全相同的URL。

开发资源

from:http://hao.jobbole.com/h2-2/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值