转载

Sharding-JDBC v1.4.2 发布, 增强版JDBC驱动

Sharding-JDBC v1.4.2 发布, 增强版JDBC驱动

 

Sharding-JDBC直接封装JDBC API,可以理解为增强版的JDBC驱动,旧代码迁移成本几乎为零:

  • 可适用于任何基于javaORM框架,如:JPAHibernateMybatisSpring JDBC Template或直接使用JDBC
  • 可基于任何第三方的数据库连接池,如:DBCPC3P0BoneCPDruid等。
  • 理论上可支持任意实现JDBC规范的数据库。虽然目前仅支持MySQL,但已有支持OracleSQLServerDB2等数据库的计划。

Sharding-JDBC定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无其他依赖,DBA也无需改变原有的运维方式。SQL解析使用Druid解析器,是目前性能最高的SQL解析器。

Sharding-JDBC功能灵活且全面:

  • 分片策略灵活,可支持=BETWEENIN等多维度分片,也可支持多分片键共用。
  • SQL解析功能完善,支持聚合,分组,排序,LimitOR等查询,并且支持Binding Table以及笛卡尔积的表查询。

Sharding-JDBC配置多样:

  • 可支持YAML和Spring命名空间配置
  • 灵活多样的inline方式

以下是常见的分库分表产品和Sharding-JDBC的对比:

功能 Cobar Cobar-client TDDL Sharding-JDBC
分库 未开源
分表 未开源
中间层
ORM支持 任意 仅MyBatis 任意 任意
数据库支持 仅MySQL 任意 任意 任意
异构语言 仅Java 仅Java 仅Java
外部依赖 Diamond

 

整体架构图

Sharding-JDBC v1.4.2 发布, 增强版JDBC驱动

Sharding-JDBC v1.4.2 发布, 增强版JDBC驱动

更新日志

功能提升

  1. ISSUE #219 线程性能优化
  2. ISSUE #215 流式排序的聚集结果集 StreamingOrderByReducerResultSet性能优化
  3. ISSUE #161 结果集归并的时候可以采用堆排序来提升性能

缺陷修正

  1. ISSUE #212 对去缺少数据源规则给出更有意义的提示
  2. ISSUE #214 where中 table_name.column_name in (?,?)无法解析表达式
  3. ISSUE #180 批量执行Update返回值不准确
  4. ISSUE #225 自动生成Id最后一位不归零

下载

本站原创,转载时保留以下信息:
本文转自:深度开源(open-open.com)
原文地址:http://www.open-open.com/news/view/4003ae29

正文到此结束
Loading...