1.縱向分片(垂直分片)
? ? 和微服務(wù)的思想一樣,根據(jù)業(yè)務(wù)場景將不同的數(shù)據(jù)存入不同的數(shù)據(jù)庫
2.橫向分片(水平分片)
? ? 將一張數(shù)據(jù)過多的表數(shù)據(jù)按條件進行拆分
? ? 可根據(jù)數(shù)據(jù)量,時間,范圍,取模/取余,枚舉值分片
一般來說首先確立縱向分片,然后考慮緩存,讀寫分離,索引技術(shù)對數(shù)據(jù)進行優(yōu)化,在數(shù)據(jù)量極大的時候在考慮分庫分表,橫向分片是分庫分表的核心
分庫分表會遇到很多問題
1.分布式事務(wù),實物一致性
2.跨節(jié)點關(guān)聯(lián)查詢
3.跨節(jié)點分頁,排序
4.主鍵避重
5.公共表處理
6.運維工作流
什么時候分庫分表
當(dāng)數(shù)據(jù)超過500W或者單表數(shù)據(jù)超過2GB,就要考慮到分庫分表了
分庫分表常用插件
ShardingSphere 市面上常用
總體執(zhí)行邏輯
路由
執(zhí)行引擎
OLAP面向分析 數(shù)據(jù)吞吐量大 效率要求不高 適合于大量數(shù)據(jù)的報表
OLTP面向事務(wù)? 歸并效率高? 適合于電商高并發(fā)場景
SPI機制快速的找到service實現(xiàn)類
mycat 出自阿里巴巴瘾境,但并非阿里巴巴開發(fā)
DBLE 只支持Mysql 基于mycat,簡單強大