写点什么

HyperSQL 2.0:期待 5 年,新版本终于发布

  • 2010-06-19
  • 本文字数:1183 字

    阅读完需:约 4 分钟

HyperSQL 2.0 于本月 7 日发布了。此次发布距 HSQLDB 1.8 的发布已有 5 年光阴了。HSQLDB 1.8 已与很多工具、框架和应用实现了集成,包括使用广泛的 OpenOffice 3.2 产品套件,它为用户提供了一个嵌入式数据库,这样除了Microsoft Access 之外,用户又多了一个选择。HyperSQL 是用纯Java 编写的,基于BSD 许可。

相对于其他开源数据库引擎来说,新版本的HyperSQL 引入了更多的特性。它首度加入了新的SQL 功能、增强的可伸缩性、查询优化以及其他一些新特性。

HyperSQL 的核心完全是多线程的,支持双向锁和 MVCC(多版本并发控制),这两个手段都是为了解决对数据库资源的并发访问问题。其他数据库如 PostgreSQL 也使用了 MVCC。除了已经支持的事务控制模式 SERIALIZABLE 和 READ COMMITTED 以外,HyperSQL 2.0 还增加了对 REPEATABLE READ 和 READ COMMITTED 隔离级别的支持。

主要的组件(包括 SQL 探测器和解析器)都已经重写了,几乎完整支持 ANSI-92 SQL 和 SQL:2003 以及众多的 SQL:2008 特性(包括很多可选的扩展),现在已经支持很多新的表达式和结构,如 BETWEEN 字句、OVERLAPS 谓词、多列 IN 表达式、MERGE 语句和 MATCHES 谓词。此外,HyperSQL 2.0 在 SQL 和 Java 语句中都支持完整的触发器定义语法以及只读和可更新视图。HyperSQL 2.0 还增加了对 SEQUENCE 类型的支持以缓解唯一数生成器的负担。新的版本支持各种数据类型,包括 BIT 类型、CLOB、BLOB 和 SQL 标准的 INTERVAL 类型,此外还增强了 TIME 支持,包含了带小数点的秒,同时也支持时区。HyperSQL 2.0 增加了 Array 类型,并且可以通过该类型组合大多数其他的类型。此外,引擎还在 JOIN 字句、WHERE 字句、IN 查询和聚合函数如 MIN、MAX 和 ORDER BY 表达式中利用了索引。新版本支持存储过程和函数。存储过程语言还支持过程式接口,如 WHILE 循环、IF、CASE WHEN 和异常处理语句以及聚合函数。这些函数可以在 SQL 和 Java 中定义。如果使用 Java、那么还可以利用多态。

HyperSQL 2.0 的一些小变化简化了管理和使用。新版本为常用类型增加了存储大小(最大为 256GB),还增加了对 BLOB 和 CLOB 数据的支持,最高支持达 64T 的数据量。它更新了一个兼容于 JDBC 4.0 的驱动并增加了对 Java 1.6 的支持。值得关注的是,HyperSQL 2.0 现在支持 Statement 和 PreparedStatement 接口的 getGeneratedKeys() 方法,这样就能更加轻松地使用 ORM 工具了。

总之,HyperSQL 2.0 包含了大量的特性。实践证明,该项目非常适合于测试环境,同时也是一个不错的嵌入式数据库。HyperSQL 似乎占据了大多数份额,但也面临着很多挑战,如由 HyperSQL 之前的创建者 Thomas Mueller 所开发的 H2 Apache Derby (以前是 IBM CloudScape),后者被引入到 JDK 6 当中,作为 JavaDB

感兴趣的读者可以浏览 HyperSQL 站点以了解更多信息。

查看英文原文: HyperSQL 2.0 - New Release 5 Years In the Making <

2010-06-19 06:183417
用户头像

发布了 88 篇内容, 共 273.5 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

区块链支付系统开发,数字货币支付承兑商APP模式搭建

13530558032

北京首台区块链政务终端亮相 一键“拉取”链上数据

CECBC

区块链技术

macos主流工作开发套件指南

久违

macos Docker 大前端 自动化部署

深度解读:Apache DolphinScheduler 新架构与特性,性能提升2~3倍

代立冬

大数据 开源 工作流调度 开源社区

oeasy教您玩转linux010204-figlet

o

Flink保存点-17

小知识点

scala 大数据 flink

学习笔记丨结构体中的内存管理

Liuchengz.

c Linux 学习

LeetCode题解:84. 柱状图中最大的矩形,循环+双指针暴力,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Apache Pulsar 8 月月报:里程碑一个接一个

Apache Pulsar

大数据 云原生 Apache Pulsar 消息系统 消息中间件

ARTS Week10

丽子

LeetCode题解:239. 滑动窗口最大值,双循环暴力,JavaScript,详细注释

Lee Chen

大前端 LeetCode

合约跟单系统开发,合约跟单软件定制开发

13530558032

区块链+公共安全 大有可为

CECBC

区块链 安全

凤凰交易所 全球首个多元化生态交易平台震撼来袭

InfoQ_967a83c6d0d7

Docker 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker 容器 集群 redis cluster

实战中学习浏览器工作原理 — 之 HTTP 请求与解析

三钻

CSS Java 大前端 浏览器

iWebExcel 协同数据填报和在线分析平台

葡萄城技术团队

SpreadJS

在5G智慧园区的“保龄球道”上,目标全垒打的征途

脑极体

Python 为什么没有 void 关键字?

Python猫

Python 编程

Centos7 mongodb安装全攻略

红泥

mongodb

从每秒6000写请求谈起

架构师修行之路

程序员 架构师 高并发系统设计

芯片破壁者(十五):仙童半导体和“八叛逆”所缔造的“硅谷模式”

脑极体

缓存与数据库一致性问题深度剖析

Zhendong

数据库 缓存 秒杀系统

Python 中的数字到底是什么?

Python猫

Python 翻译 PEP

数字货币钱包软件开发方案,区块链数字货币钱包源码

13530558032

区块链usdt承兑商支付系统开发 区块链应用开发

电微13828808271

USDT承兑支付系统开发

dubbo应用级服务发现初体验

捉虫大师

dubbo 注册中心

全场景智慧:新工业革命必须拥抱的晨曦

脑极体

Python 函数为什么会默认返回 None?

Python猫

Python 编程

有奖征文火热开赛,万元大奖等你来拿,准备好了吗?

InfoQ写作社区官方

程序员 开发者 音视频 随笔杂谈 RTC征文大赛

经济适用的企业内外网互动直播方案

fumingwang

音视频 直播 视频会议 企业应用

HyperSQL 2.0:期待5年,新版本终于发布_Java_Josh Long_InfoQ精选文章