1. 程式人生 > 實用技巧 >Sharding-JDBC

Sharding-JDBC

Sharding-JDBC是ShardingSphere的一個子專案,使用資料庫路由來進行分庫分表。ShardingSphere的官方文件地址為:http://shardingsphere.apache.org/index_zh.html
具體的細節參考官方文件學習。

文件總結

概念

邏輯表真實表繫結表廣播表分片鍵

分片演算法

​ 精確分片 單一鍵 =, IN

​ 範圍分片 單一鍵 BETWEEN, >, <, >=, <=

​ 複合分片 多鍵

​ Hint分片

核心

單資料庫的核心執行過程通常是

​ 解析 --> 優化器 --> 執行器

而分片的中介軟體

解析引擎 --> 路由引擎 --> 改寫引擎 --> 執行引擎 --> 歸併引擎

所以分片中介軟體主要多出來的就是 路由,改寫,歸併

路由

其實實際運用的主要是分片路由,廣播路由中只有全庫表路由常用

改寫

這裡有個處理分頁的技巧:

越獲取偏移量位置靠後資料,使用LIMIT分頁方式的效率就越低。 有很多方法可以避免使用LIMIT進行分頁。比如構建行記錄數量與行偏移量的二級索引,或使用上次分頁資料結尾ID作為下次查詢條件的分頁方式等。

執行

執行主要了解下 連結模式的分類, 記憶體限制模式、連結限制模式

歸併

實踐例子

實踐的例子參考:https://github.com/TaXueWWL/snowalker-shardingjdbc-demo

直接參考其中的入門例子就可以了,無論是使用原生的jdbc還是Springboot整合sharding-jdbc,對於業務邏輯而言其實是沒有程式碼修改的,主要是資料來源的配置以及分片配置、讀寫分離配置等。

在官方文件之中也是有例子的:使用手冊