Sharding-JDBC
阿新 • • 發佈:2020-08-17
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,對於業務邏輯而言其實是沒有程式碼修改的,主要是資料來源的配置以及分片配置、讀寫分離配置等。
在官方文件之中也是有例子的:使用手冊