无忧技术网 - RSS订阅 
无忧技术网

HyperSQL v2.0:继 v1.8 后五年,终于发布新版本了


作者:[佚名] - 发布:2010-6-23 8:35:19 - 来源:InfoQ

 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站点以了解更多信息。

责任编辑:liqwei
打印本页】【关闭本页】【返回列表
·上一篇:谷歌弃用微软Windows的四大理由
·下一篇:Squid 3.1.5 发布
 文章评分
  • current rating
-5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5
 相关文章
·[程序综合]Unicode 6.1发布 (2012-02-02)
·[软件信息]PyPy 1.7发布 (2011-11-22)
·[Linux]OpenELEC 1.0发布 (2011-10-21)
·[软件信息]Subversion 1.7发布 (2011-10-14)
·[软件信息]PostgreSQL 9.1发布 (2011-09-13)
 相关评论
 站点最新文章 更多>> 
·[经典影音]弱点
·[经典影音]萨利机长
·[经典影音]天空之眼
·[管理知识]康奈尔笔记法,提高100%学习效率
·[管理知识]刘强东:我管75000人靠这4张表格
·[管理知识]跟壳牌学HSE管理
·[运营策划]编辑工作内容整理
·[至理名言]奋斗与决定
·[瀚海拾遗]盲人打灯笼之各家论道
·[搞笑段子]中国男足
 站点浏览最多 更多>> 
·[协议规范]http断点续传原理:http头 Range、…
·[JS/CSS/HTML]HTML 空格的表示符号 nbsp / en…
·[NoSQL]Mongo数据库简介
·[协议规范]什么是SPF记录?如何设置、检测SP…
·[协议规范]图解 HTTPS 通信过程
·[PHP]精选国外免费PHP空间推荐
·[程序综合]常用IP地址查询接口
·[程序综合]什么是 DNS Prefetch ?
·[程序综合]获取客户端IP地址的三个HTTP请求…
·[Linux]/usr 目录的由来