Sharding-JDBC v1.4.2 發布,?增強版JDBC驅動

jopen 7年前發布 | 10K 次閱讀 JDBC MySQL Oracle SQLServer DB2 Sharding-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

 

整體架構圖

更新日志

功能提升

  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.baiduhome.net/news/view/4003ae29

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!