摘要:如成千上萬的螞蟻完成一項(xiàng)搬運(yùn)工作縱向擴(kuò)展又叫垂直擴(kuò)展,擴(kuò)展一個(gè)點(diǎn)的能力支撐更大的請(qǐng)求。如利用個(gè)人的能力,如蜘蛛俠逼停火車參考分庫分表的基本思想
一 概念:什么是分庫分表(sharding)
1 將集中于單一節(jié)點(diǎn)的數(shù)據(jù)拆分并分別存儲(chǔ)到多個(gè)數(shù)據(jù)庫或表,稱為分庫分表 2 數(shù)據(jù)切分分為兩種方式,垂直切分和水平切分 3 分庫:因?yàn)楸矶鄬?dǎo)致數(shù)據(jù)過多使用垂直切分,垂直切分就是根據(jù)業(yè)務(wù)的耦合性,將關(guān)聯(lián)度低的不同表存儲(chǔ)在不同的數(shù)據(jù)庫,按照業(yè)務(wù)分離進(jìn)行獨(dú)立存儲(chǔ) 4 分表:每張表的數(shù)據(jù)非常多適合使用水平切分,即把表的數(shù)據(jù)按某種規(guī)則切分到多個(gè)數(shù)據(jù)庫上二 用途:分庫分表用來解決什么問題
數(shù)據(jù)庫面對(duì)海量數(shù)據(jù)由于數(shù)據(jù)量過大導(dǎo)致的性能問題三 用例:具體的使用用例,解決了什么典型問題
Sharding的基本思想就要把一個(gè)數(shù)據(jù)庫切分成多個(gè)部分方法哦不同的數(shù)據(jù)庫server上,從而緩解單一數(shù)據(jù)庫的性能問題,中間件
當(dāng)當(dāng) sharding-jdbc
蘑菇街 TSharding
sharding
TDDL Smart Client的方式 -- 淘寶
Atlas -- 360
alibaba.cobar 阿里巴巴B2B
MyCat 基于阿里開源的Cobar
Oceanus 58同城
OneProxy 支付寶首席架構(gòu)師 樓方鑫
vitess 谷歌
分庫分表后會(huì)遇到什么問題?事務(wù)問題 方案一,使用分布式事務(wù). 方案二, 由應(yīng)用程序和數(shù)據(jù)庫共同控制
跨節(jié)點(diǎn)Join的問題 方案,兩次查詢 第一次找出關(guān)聯(lián)數(shù)據(jù)的ID,第二次根據(jù)這些ID獲得關(guān)聯(lián)數(shù)據(jù)
跨節(jié)點(diǎn)的count,order by,group by以及聚合函數(shù)問題 方案,并行在各節(jié)點(diǎn)上查詢?nèi)缓蠛喜⒔Y(jié)果
數(shù)據(jù)遷移,容量規(guī)劃,擴(kuò)容問題
來自淘寶綜合業(yè)務(wù)平臺(tái)團(tuán)隊(duì),它利用對(duì)2的倍數(shù)取余具有向前兼容的特性(如對(duì)4取余得1的數(shù)對(duì)2取余也是1)來分配數(shù)據(jù),避免了行級(jí)別的數(shù)據(jù)遷移,但是依然需要進(jìn)行表級(jí)別的遷移,同時(shí)對(duì)擴(kuò)容規(guī)模和分表數(shù)量都有限制??偟脕碚f,這些方案都不是十分的理想,多多少少都存在一些缺點(diǎn),這也從一個(gè)側(cè)面反映出了Sharding擴(kuò)容的難度
ID問題
UUID , 結(jié)合數(shù)據(jù)庫維護(hù)一個(gè)Sequence , [Twitter的分布式自增ID算法Snowflake][1]
跨分片的排序分頁 方案,限制能查看的頁數(shù),一定要查看可縮小范圍重新查看
分庫策略 根據(jù)數(shù)值取模
分庫數(shù)量 初次建議 4 - 8
路由透明
使用框架還是自主研發(fā)
擴(kuò)容//TODO四 其他解決方案
主從 讀寫分離 緩存五 熟悉原理,重新實(shí)現(xiàn)
//TODO備注
1 , 橫向擴(kuò)展 也叫 水平擴(kuò)展,用更多的節(jié)點(diǎn)支撐更大量的請(qǐng)求。 如成千上萬的螞蟻完成一項(xiàng)搬運(yùn)工作
2 , 縱向擴(kuò)展 又叫 垂直擴(kuò)展,擴(kuò)展一個(gè)點(diǎn)的能力支撐更大的請(qǐng)求。如利用1個(gè)人的能力,如蜘蛛俠逼?;疖?br> 3 , 參考 分庫分表的基本思想
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75462.html
摘要:煩人的數(shù)據(jù)遷移分表規(guī)則弄好后其實(shí)只是完成了分表的第一步,真正麻煩的是數(shù)據(jù)遷移,或者說是如何做到對(duì)業(yè)務(wù)影響最小的數(shù)據(jù)遷移。 showImg(https://segmentfault.com/img/remote/1460000020003851?w=1920&h=1080); 背景 前不久發(fā)過兩篇關(guān)于分表的文章: 一次分表踩坑實(shí)踐的探討 分表后需要注意的二三事 從標(biāo)題可以看得出來,當(dāng)...
摘要:但你是否知道分庫分表需要哪些要素拆分過程是復(fù)雜的,提前計(jì)劃,不要等真正開工,各種意外的工作接踵而至,以至失控。在實(shí)施分庫分表策略時(shí),這些個(gè)性會(huì)造成策略過大不好維護(hù)。 更多文章關(guān)注微信公眾號(hào)《小姐姐味道》 https://mp.weixin.qq.com/s?__... 數(shù)據(jù)庫中間件之分庫分表 恭喜你,貴公司終于成長到一定規(guī)模,需要考慮高可用,甚至分庫分表了。但你是否知道分庫分表需要哪...
摘要:分表分庫集成易用簡單高性能普適性,是一款擴(kuò)展針對(duì)生態(tài)下的分表分庫的擴(kuò)展解決方案支持的所有版本支持的所有數(shù)據(jù)庫支持自定義路由動(dòng)態(tài)路由高性能分頁讀寫分離的一款組件,如果你喜歡這組件或者這個(gè)組件對(duì)你有幫助請(qǐng)點(diǎn)擊下發(fā)讓更多的可以看到使用助力生態(tài) Furion分表分庫集成ShardingCore ShardingCore ShardingCore 易用、簡單、高性能、普適性,是一款擴(kuò)展針對(duì)efcor...
摘要:開篇金幣積分商城下稱商城是眾多內(nèi)的一個(gè)產(chǎn)品,隨著使用的用戶越來越多,商城對(duì)于用戶留存的提升,扮演著重要的角色做為提高用戶黏性的核心產(chǎn)品,在擁有很好用戶體驗(yàn)的同時(shí),也必須存在著一個(gè)高效穩(wěn)定的系統(tǒng)。分析上述兩點(diǎn),得到結(jié)論按用戶進(jìn)行分庫分表。 開篇 金幣(積分)商城(下稱商城)是眾多App內(nèi)的一個(gè)產(chǎn)品,隨著App使用的用戶越來越多,商城對(duì)于用戶留存的提升,扮演著重要的角色;做為提高用戶黏性的...
閱讀 626·2021-10-08 10:20
閱讀 1513·2021-09-23 11:22
閱讀 3245·2019-08-30 15:55
閱讀 1673·2019-08-28 18:25
閱讀 1895·2019-08-28 18:14
閱讀 1264·2019-08-26 11:37
閱讀 2927·2019-08-26 10:18
閱讀 2450·2019-08-23 18:39