主流數(shù)據(jù)庫架構(gòu)設(shè)計(jì)

一主多從,主從同步辑畦,讀寫分離數(shù)據(jù)庫架構(gòu)

本質(zhì)是對數(shù)據(jù)的全量復(fù)制冗余,適用于讀多寫少的大部分業(yè)務(wù)場景腿倚,而且這種架構(gòu)不僅適用于數(shù)據(jù)庫,其他IO場景也能使用蚯妇。

  1. 多個(gè)從庫提供讀服務(wù)敷燎,線性提升讀數(shù)據(jù)的性能。
  2. 因?yàn)樽x寫不在同一個(gè)庫上發(fā)生箩言,就沒有讀寫鎖的存在硬贯,提升寫數(shù)據(jù)的性能,本質(zhì)是擴(kuò)展獨(dú)立的IO服務(wù)數(shù)量(設(shè)備數(shù))減少IO競爭陨收。
  3. 全量復(fù)制也增加了高可用饭豹。
    這里可以延伸下鸵赖,數(shù)據(jù)IO的共享,就會牽涉到并發(fā)吞吐能力拄衰,就會牽涉到競爭和鎖它褪,就會影響性能。在這里提供性能翘悉,就是通過水平擴(kuò)展IO的能力方式之一茫打。
    全量復(fù)制數(shù)據(jù)相比增量復(fù)制數(shù)據(jù),增加了同步數(shù)據(jù)復(fù)雜性妖混,但也更加提高了讀性能老赤。

水平切分

  1. 分庫優(yōu)于分表,分表還是在一個(gè)數(shù)據(jù)庫文件上分享IO制市,還是存在IO競爭抬旺;而且分庫能夠方便遷移到不同的數(shù)據(jù)庫服務(wù)器上,擴(kuò)展性更好祥楣。(第1點(diǎn)也是一主多從解決的痛點(diǎn)开财,第2點(diǎn)則是數(shù)據(jù)庫關(guān)于庫和表2種粒度的特性決定)

  2. 分片的問題在于每片的部分?jǐn)?shù)據(jù)之間不能緊耦合。(緊耦合帶來的問題就是需要請求2次增加了RT荣堰,還要做額外的聚合計(jì)算床未,這個(gè)也是數(shù)據(jù)庫特性導(dǎo)致,關(guān)系數(shù)據(jù)庫原生的關(guān)系計(jì)算只適用于一張庫的全量表上)

  3. 水平切分最大的問題是針對非切分字段的條件查詢需要遍歷所有庫振坚,影響性能薇搁。
    數(shù)據(jù)庫查詢分為點(diǎn)查詢(通常用戶端發(fā)起)和 批量分頁查詢(通常運(yùn)營端發(fā)起)。
    2.1 點(diǎn)查詢解決非切分字段思路:

  • 建立非切分字段和切分字段的索引表渡八,先通過索引表查詢到映射的切分字段啃洋,再定位相應(yīng)庫的位置。索引表可以根據(jù)字段數(shù)據(jù)量決定單庫還是分庫屎鳍。缺點(diǎn)在于多一次查詢宏娄。
  • 在非切分字段上加工生成切分字段(目前系統(tǒng)就是采用這種方式,但不是所有非切分字段都適用)逮壁。
    2.2 批量分頁查詢解決思路:
    批量分頁查詢特點(diǎn):訪問計(jì)算量大孵坚,返回?cái)?shù)據(jù)量大,占用數(shù)據(jù)庫性能高窥淆。另外卖宠,運(yùn)營端查詢維度各式各樣,往往要建各種索引忧饭,影響用戶端寫數(shù)據(jù)的性能扛伍。
    避免低效批量查詢引發(fā)用戶端查詢抖動(dòng),另外創(chuàng)建備庫词裤,運(yùn)營端查詢對于數(shù)據(jù)實(shí)時(shí)性要求較低刺洒,可以通過消息或者線下方式異步同步數(shù)據(jù)鳖宾,不影響熱點(diǎn)前端業(yè)務(wù)流程。
    如果數(shù)據(jù)量非常大逆航,復(fù)制數(shù)據(jù)成本過高鼎文,關(guān)系型數(shù)據(jù)庫查詢性能無法滿足需求,可以考慮外置索引elasticSearch纸泡,或者大數(shù)據(jù)處理hive漂问。
  1. 水平切分解決了最大的痛點(diǎn)就是單庫容量的問題,同一主多從的線性提升讀性能基礎(chǔ)上女揭,水平切分線性提升了寫的性能蚤假。(很好理解,因?yàn)楠?dú)立IO數(shù)增加了吧兔;但是因?yàn)椴皇侨繑?shù)據(jù)磷仰,所以所謂的線性提升也僅僅是讀寫不同分片的數(shù)據(jù)場景,這點(diǎn)還是不如一主多從的讀境蔼。至于單機(jī)瓶頸是因?yàn)闀r(shí)代技術(shù)原因所限灶平,和設(shè)計(jì)無關(guān))

  2. 常見的水平切分算法有“范圍法”和“哈希法”。
    范圍法優(yōu)點(diǎn):擴(kuò)容簡單箍土。
    范圍法缺點(diǎn):切分字段要滿足遞增逢享;數(shù)據(jù)分布不均勻,同時(shí)導(dǎo)致了請求分布不均勻吴藻。
    哈希法的優(yōu)缺點(diǎn)和范圍法正好相反瞒爬。
    4.1 哈希法最佳實(shí)踐:基因法 (分庫基因 % 分庫庫數(shù))
    在一對多場景下,一個(gè)批次對應(yīng)多筆訂單沟堡。先通過批次號最后4個(gè)bit決定落地到哪個(gè)數(shù)據(jù)庫的批次表里侧但,此時(shí)分庫基因就是這4個(gè)bit。在生成訂單號的時(shí)候航罗,先生成除最后4位的前幾位禀横,將分庫基因加到最后4位bit,使用相同的切分算法就能落到和批次表同一個(gè)數(shù)據(jù)庫里了粥血。
    上述場景必須先外部批次號生成柏锄,外部訂單號才能生成;反過來根據(jù)訂單號確定分庫基因有些麻煩复亏。

垂直切分

熱點(diǎn)小字段和長尾大字段分開切分绢彤,保證數(shù)據(jù)庫緩存能夠存儲更多的熱點(diǎn)數(shù)據(jù),增減緩存命中率蜓耻。適用于特殊的業(yè)務(wù)表。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末械巡,一起剝皮案震驚了整個(gè)濱河市刹淌,隨后出現(xiàn)的幾起案子饶氏,更是在濱河造成了極大的恐慌,老刑警劉巖有勾,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疹启,死亡現(xiàn)場離奇詭異,居然都是意外死亡蔼卡,警方通過查閱死者的電腦和手機(jī)喊崖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雇逞,“玉大人荤懂,你說我怎么就攤上這事√猎遥” “怎么了节仿?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長掉蔬。 經(jīng)常有香客問我廊宪,道長,這世上最難降的妖魔是什么女轿? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任箭启,我火速辦了婚禮,結(jié)果婚禮上蛉迹,老公的妹妹穿的比我還像新娘傅寡。我一直安慰自己,他們只是感情好婿禽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布赏僧。 她就那樣靜靜地躺著,像睡著了一般扭倾。 火紅的嫁衣襯著肌膚如雪淀零。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天膛壹,我揣著相機(jī)與錄音驾中,去河邊找鬼。 笑死模聋,一個(gè)胖子當(dāng)著我的面吹牛肩民,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播链方,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼持痰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了祟蚀?” 一聲冷哼從身側(cè)響起工窍,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤割卖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后患雏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹏溯,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年淹仑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丙挽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匀借,死狀恐怖颜阐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怀吻,我是刑警寧澤瞬浓,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站蓬坡,受9級特大地震影響猿棉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屑咳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一萨赁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兆龙,春花似錦杖爽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至聪铺,卻和暖如春化焕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铃剔。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工撒桨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人键兜。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓凤类,卻偏偏與公主長得像,于是被迫代替她去往敵國和親普气。 傳聞我的和親對象是個(gè)殘疾皇子谜疤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容