在數(shù)據(jù)庫分庫分表中,中間件就相當(dāng)于一個(gè)adapter(適配器),開發(fā)中你不需要去關(guān)心分庫分表是怎么實(shí)現(xiàn),你只需要正常操作就行。
像常見的分庫分表中間件sharding-jdbc,Mycat,DBproxy,atlas,它們做的其實(shí)就是適配器的活。
我上層業(yè)務(wù)不需要關(guān)心你怎么去分庫分表,我只要配置好規(guī)則就行,在寫CRUD的時(shí)候不用去指明具體的表明,就好像你操作的就是一個(gè)數(shù)據(jù)庫表一樣。
分庫分表是是能解決表數(shù)據(jù)太大的問題,但是它也存在很多問題,其中很多問題是中間很難去解決的。就拿簡單的分頁來說,光是為了知道頁數(shù)就需要查詢很多張表,然后在進(jìn)行分頁。更復(fù)雜的有join操作,統(tǒng)計(jì)操作這類的,現(xiàn)在很多中間件都不支持多表關(guān)聯(lián)。
從上面可以看出,分庫分表的中間件起到了適配的作用,還不能支持太復(fù)雜的操作,簡而言之就是“一個(gè)功能待完善的適配器”。