写点什么

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:183429
用户头像

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

关注

评论

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

以数字技术赋能产业金融生态能力建设,破解银行的场景焦虑

易观分析

金融 银行 数字科技

Linkerd 流量拆分方案

CTO技术共享

Go 言 Go 语,一文看懂 Go 语言文件操作

梦想橡皮擦

Python Go 9月月更

云原生(三十三) | Kubernetes篇之平台存储系统部署

Lansonli

云原生 9月月更

HAVE FUN | SOFA 飞船——Layotto 星球登陆计划

SOFAStack

#开源

还晓得吗,Redis 的 zset 怎么实现的?

知识浅谈

9月月更

【CSS·显示类型】 block、inline以及inline-block

翼同学

CSS 前端 9月月更

Python 教程之数据分析(4)—— 使用 Python 进行数据分析和可视化 | 第 1 套

海拥(haiyong.site)

Python pandas 9月月更

日拱算法:典例-快慢指针解“环形链表”

掘金安东尼

前端 9月月更

ArkID:开源IDaaS系统插件OAuth2轻松实现单点登录高效进行应用服务集成

龙归科技

oauth2.0 SSO Idaas

华为云快成长GaussDB(for Redis)

IT资讯搬运工

Predicate

急需上岸的小谢

9月月更

C++学习------cassert头文件的作用与源码学习

桑榆

c++ 9月月更

【CSS】:正常布局流(normal flow)、有趣的浮动(float)

翼同学

CSS 前端 9月月更

【CSS·清除浮动】Clearing floats:clear、clearfix、overflow、flow-root

翼同学

CSS 前端 9月月更

室友只用了一把王者的时间就入门了「C语言」

Albert Edison

c++ C语言 函数 循环 9月月更

jsp入门解析

楠羽

笔记 jsp 9月月更

NFT数字藏品是什么?NFT数字藏品有什么前景?

开源直播系统源码

NFT 数字藏品 数字藏品开发 数字藏品系统

跟着卷卷龙一起学Camera--黑电平Blacklevel

卷卷龙

ISP camera 9月月更

EMQX +计算巢:构建云上物联网平台,轻松实现百万级设备连接

阿里云弹性计算

物联网 计算巢

NodeJs小试牛刀--聊天室搭建

zxhtom

9月月更

Containerlab + Kind 部署 Cilium BGP

CTO技术共享

亿级别搜索系统架构与总结

goodrain

Java elasticsearch

[Go WebSocket] 你的第一个Go WebSocket服务: echo server

HullQin

Go golang 后端 websocket 9月月更

【云原生 | Docker】腾讯云部署Django项目 (服务器选型、git配置、docker三分钟部署)

计算机魔术师

8月月更

如何增强 ABAP 系统,允许开发人员给 ABAP 对象设置标签,方便快速检索

汪子熙

SAP abap Netweaver 标签体系 9月月更

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