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

主要功能
- 非常快速的数据库引擎。
- 开源。
- 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的远程连接)。
- 混合模式(本地和远程连接同时存在)。
嵌入式模式

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

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

混合模式是嵌入式模式和服务器模式的组合。第一个应用程序在嵌入式模式中连接到数据 库,但也启动了一个数据库服务器,这样其他应用程序(运行在不同进程或虚拟机中)可以同时访问数据。本地连接像嵌入式模式一样快速,远程连接稍慢。 数据库服务器可以通过API,或者自动化(自动混合模式)启停。当使用自动混合模式时,所有要连接数据库的客户端可使用完全相同的URL。
开发资源
官方网站:http://www.h2database.com/
开源地址:https://github.com/h2database/h2database
from:http://hao.jobbole.com/h2-2/
H2:开源内存数据库引擎的更多相关文章
- Camunda开源流程引擎快速入门——Hello World
市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.由于jbpm.activiti.flowable这几个流程引擎出现的比较早,国内人用的 ...
- 你需要知道的MySQL开源存储引擎TokuDB
在四月份的Percona Live MySQL会议上, TokuDB庆祝自己成为开源存储引擎整一周年.我现在仍能记得一年前它刚创建时的官方声明与对它的期望.当时的情况非常有意思,因为它拥有帮助MySQ ...
- 开源分布式计算引擎 & 开源搜索引擎 Iveely 0.5.0 为大数据而生
Iveely Computing 产生背景 08年的时候,我开始接触搜索引擎,当时遇到的第一个难题就是大数据实时并发处理,当时实验室的机器我们可以随便用,至少二三十台机器,可以,却没有程序可以将这些机 ...
- Java三大主流开源工作流引擎技术分析
首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入.但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题! 三大主流工作流引擎:Shark,oswo ...
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程08:虚拟键盘实现》--本系列完结
8.虚拟键盘实现 概述: 硬键盘就是物理键盘,平时敲的那种.软键盘是虚拟的键盘,不是在键盘上,而是在"屏幕"上.虚拟按键就是虚拟键盘的一部分,根据功能需求,提供部分按键效果的UI可 ...
- 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇:简介及目录》(附上完整工程文件)
G-3D引擎2D射击类游戏制作教程 游戏类型: 打飞机游戏属于射击类游戏中的一种,可以划分为卷轴射击类游戏. 视觉表现类型为:2D 框架简介: Genesis-3D引擎不仅为开发者提供一个3D游戏制作 ...
- 《Genesis-3D开源游戏引擎-FQA常见问题解答》2014年01月10号版本
1.Genesis-3D开源游戏引擎主要面向哪些用户人群?有限制吗? 1.我们的引擎没有限制,只要您想了解和使用我们的引擎,就可以加入Genesis-3D的大家庭.2.我们的主要用户群是各个相关的企业 ...
- 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇:简介及目录》(附上完整工程文件)
跑酷游戏制作 游戏类型: 此游戏Demo,为跑酷类游戏. 框架简介: 游戏通常由程序代码和资源组成.如果说模型.贴图.声音之类的可以给游戏环境提供一个物理描述和设置,那么脚本和代码块会给游戏赋予生命, ...
- Genesis-3D开源游戏引擎简介!
Genesis-3D由搜狐畅游公司超百人引擎研发团队历时数年耗费巨资自主研发,是国内外首款商业开源的3D游戏引擎平台.它包括跨平台渲染引擎.2D引擎.物理引擎.音效系统.粒子系统.动画系统.服务器引擎 ...
随机推荐
- H5中canvas标签制作在线画板
1.介绍 左键点击下移动开始画图.放开鼠标不在画图. 2.重要使用理论 query的使用: 鼠标的按下mousedown 鼠标的移动mousemove 鼠标的放开 mouseup 3.程序 <! ...
- ionic获取ios唯一设备id的解决方案
经常有朋友来问这个问题. 每次都去解释这个问题也浪费不少时间, 所以还是开一篇文章, 把这个问题说清楚吧. 先纠正一个误区吧: 有同学可以通过ionic natvie的device插件获取. 我们在文 ...
- Python3.7.2,在Linux上跑来跑去的,是在升级打怪么?
Python3.7.2,在Linux上跑来跑去的,是在升级打怪么? 前不久,发布了Python在Windows(程序员:Python学不学?完全没必要纠结)和Mac OS(我是Python,P派第 ...
- OSNIT信息收集分析框架OSRFramework
OSNIT信息收集分析框架OSRFramework OSNIT是一种从公开的信息资源搜集信息的有效方式.Kali Linux集成了一款专用分析工具集OSRFramework.该工具集包含多个常用工具 ...
- Struts 2 学习笔记
1.Struts2 jar包 struts2-core-2.1.8.1 struts2的核心jar包,不可缺少的 xwork-core-2.1.6 xwork的核心包,由于Struts2是由xwork ...
- LOJ.2721.[NOI2018]屠龙勇士(扩展CRT 扩展欧几里得)
题目链接 LOJ 洛谷 rank前3无压力(话说rank1特判打表有意思么) \(x*atk[i] - y*p[i] = hp[i]\) 对于每条龙可以求一个满足条件的\(x_0\),然后得到其通解\ ...
- [USACO06JAN]Redundant Paths
OJ题号:洛谷2860.POJ3177 题目大意: 给定一个无向图,试添加最少的边使得原图中没有桥. 思路: Tarjan缩点,然后统计度为$1$的连通分量的个数(找出原图中所有的桥). 考虑给它们每 ...
- hdu 4431 第37届ACM/ICPC 天津赛区现场赛A题 枚举
题意:就是给了13张牌.问增加哪些牌可以胡牌.m是数字,s是条,p是筒,c是数字 胡牌有以下几种情况: 1.一个对子 + 4组 3个相同的牌或者顺子. 只有m.s.p是可以构成顺子的.东西南北这样 ...
- 【BZOJ-3672】购票 树分治 + 斜率优化DP
3672: [Noi2014]购票 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 1177 Solved: 562[Submit][Status][ ...
- PHP常用设计模式
1.单例模式指在整个应用中只有一个对象实例的设计模式 class Single { public $rand; static private $instance; // 类直接调用 final pri ...