H2内存数据库
前言
H2数据库介绍
之前项目中用到了H2内存数据库,常用的开源数据库:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB类似,十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。
H2的优势
1、h2采用纯Java编写,因此不受平台的限制。
2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。
3、性能和功能的优势
H2比HSQLDB的最大的优势就是h2提供了一个十分方便的web控制台用于操作和管理数据库内容,这点比起HSQLDB的swing和awt控制台实在好用多了。
H2和各数据库特征比较
官方下载地址:http://www.h2database.com/html/download.html
1、H2支持三种服务模式
模式 | 说明 |
---|---|
web server | 此种运行方式支持使用浏览器访问H2 Console |
TCP server | 支持客户端/服务器端的连接方式 |
PG server | 支持PostgreSQL客户端 |
启动tcp服务连接字符串示例:
jdbc:h2:tcp://localhost/~/test #使用用户主目录
jdbc:h2:tcp://localhost//data/test #使用绝对路径
2、常见的选项如下
参数 | 说明 |
---|---|
-web | 启动支持H2 Console的服务 |
-webPort |
服务启动端口,默认为8082 |
-browser | 启动H2 Console web管理页面 |
-tcp | 使用TCP server模式启动 |
-pg | 使用PG server模式启动 |
3、连接字符串参数
参数 | 说明 |
---|---|
DB_CLOSE_DELAY | 要求最后一个正在连接的连接断开后,不要关闭数据库 |
MODE=mysql | 兼容模式,H2兼容多种数据库,该值可以为:DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL |
AUTO_RECONNECT=TRUE | 连接丢失后自动重新连接 |
AUTO_SERVER=TRUE | 启动自动混合模式,允许开启多个连接,该参数不支持在内存中运行模式 |
TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE | 输出跟踪日志到控制台或文件, 取值0为OFF,1为ERROR(默认值),2为INFO,3为DEBUG |
SET TRACE_MAX_FILE_SIZE mb | 设置跟踪日志文件的大小,默认为16M |
4、使用心得
1、支持索引,常规数据在1W条以下速度很快,如果数据量超过1W以上的话,需要进行表设计和sql优化。
2、兼容99%以上的sql语句,可能跟oracle冲突大一点,兼容mysql多一些。
3、既然是java开发的,启动依赖安装的jdk
5、参考
其他日常使用就不一一截图,请参考下面的博客:
blog1: http://blog.csdn.net/guicaizhou/article/details/51858086
blog2: http://aub.iteye.com/blog/1882646
- 原文作者:Anttu
- 原文链接:https://anTtutu.github.io/post/2017-05-11-h2/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。