MyShardingSql基于 Mybatis+ 插件技術(shù)實(shí)現(xiàn)的分庫分表
基于Mybatis+插件技術(shù)實(shí)現(xiàn)的分庫分表技術(shù),總體思想是使用Range范圍+哈希取模 實(shí)現(xiàn)分庫分表,降低表內(nèi)記錄數(shù)提升性能
關(guān)于Mybatis參數(shù)
1)支持設(shè)置sql執(zhí)行超時(shí)時(shí)間
2)localCacheScope參數(shù)設(shè)置為STATEMENT而非SESSION
分庫分表功能
單sql+包含分片鍵 (自動(dòng)提交) -支持以下功能
1)Select|Insert|Update|Delete
2)sql內(nèi)任意多個(gè)表的Join操作 [不建議太多表的join]
3)sql類型無任何限制
4)sql支持分片內(nèi)部的讀寫分離
5)從數(shù)據(jù)庫的輪詢實(shí)現(xiàn)負(fù)載均衡
單sql+不包含分片鍵(自動(dòng)提交)(不支持)
1)必須要有分片鍵
多sql+包含分片鍵(手動(dòng)提交) -支持以下功能
1)支持事務(wù)
2)支持事務(wù)內(nèi)的任何CRUD
3)sql類型無限制
指定分片鍵
分片鍵支持2種類型
1)xml內(nèi)部的sql占位符,使用SqlField注解
2)函數(shù)的參數(shù)下標(biāo)直接指定,使用ParameterIndex注解
設(shè)計(jì)缺點(diǎn)
1)數(shù)據(jù)量越來越大時(shí),配置越多,需要?jiǎng)?chuàng)建的數(shù)據(jù)源也越多
2)內(nèi)部只支持Range和哈希取模 2種分庫分表
評(píng)論
圖片
表情
