成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從單機(jī)到分布式:拆解高并發(fā)數(shù)據(jù)庫架構(gòu)的六大生死決策

數(shù)據(jù)庫 MySQL
關(guān)系型數(shù)據(jù)庫(如MySQL)設(shè)計(jì)側(cè)重ACID,分片會破壞事務(wù)和Join,需業(yè)務(wù)層權(quán)衡;而Redis/MongoDB等為高擴(kuò)展設(shè)計(jì),犧牲部分特性(如強(qiáng)一致性)內(nèi)置Sharding支持。

一、數(shù)據(jù)庫讀寫分離

核心原理

  • 主從集群搭建:一主一從/一主多從,主機(jī)負(fù)責(zé)讀寫,從機(jī)只讀。
  • 數(shù)據(jù)同步:主機(jī)通過復(fù)制同步數(shù)據(jù)到從機(jī),所有節(jié)點(diǎn)存儲全量數(shù)據(jù)。
  • 流量分發(fā):業(yè)務(wù)層將寫操作指向主機(jī),讀操作分發(fā)至從機(jī)。

適用場景

  • 業(yè)務(wù)量持續(xù)增長,且已優(yōu)化索引、引入緩存后仍性能不足。

常見問題與解法

  • 問題:寫后讀數(shù)據(jù)不一致(如剛寫入主機(jī),從機(jī)未同步)。
  • 解法
  1. 讀寫綁定:寫后讀強(qiáng)制走主機(jī)(侵入性強(qiáng),易留坑)。
  2. 二次讀取:從機(jī)讀失敗后重試主機(jī)(增加主機(jī)壓力)。
  3. 業(yè)務(wù)分級:核心業(yè)務(wù)讀寫均走主機(jī),非核心業(yè)務(wù)讀寫分離(需嚴(yán)格編碼規(guī)范)。

實(shí)現(xiàn)方式對比

方式

中間件代理

客戶端分庫

復(fù)雜度

高(需獨(dú)立部署、集群管理)

低(基于JDBC封裝)

維護(hù)成本

高(需高可用設(shè)計(jì))

低(無額外部署)

語言支持

跨語言

需各語言單獨(dú)實(shí)現(xiàn)


二、數(shù)據(jù)庫分庫分表

拆分策略

  • 垂直拆分:按列拆分,解決單表字段過多問題(常見于2B場景)。
  • 水平拆分:按行拆分,分散數(shù)據(jù)壓力(常見于2C海量數(shù)據(jù)場景)。

拆分時(shí)機(jī)

  • B+樹層數(shù)超過3層(約2000萬數(shù)據(jù))。
  • 單表數(shù)據(jù)占滿Innodb Buffer Pool(如2G數(shù)據(jù))。
  • 數(shù)據(jù)持續(xù)增長且性能瓶頸明顯。

核心問題與解法

  1. Join失效

a.冗余小表(如字典表)。

b.代碼層手動Join。

c.字段冗余(如訂單表直接存商品類型)。

  1. 事務(wù)一致性
  • 引入分布式事務(wù)(如2PC、3PC)。
  1. 路由與聚合
  • 路由算法(如Hash、范圍分片)。
  • 分片后Count/Order by需中間件或應(yīng)用層聚合。
  1. 擴(kuò)展限制
  • 數(shù)據(jù)庫連接數(shù)瓶頸(如MySQL默認(rèn)100連接)。
  • 中間件聚合操作性能受限,需權(quán)衡分片數(shù)量。

三、數(shù)據(jù)庫分布式事務(wù)算法

主流方案對比

算法

2PC(兩階段提交)

3PC(三階段提交)

流程

1. 準(zhǔn)備階段
2. 提交/回滾階段

1. CanCommit
2. PreCommit
3. DoCommit

優(yōu)點(diǎn)

強(qiáng)一致性,實(shí)現(xiàn)簡單

減少阻塞,降低超時(shí)風(fēng)險(xiǎn)

缺點(diǎn)

協(xié)調(diào)者單點(diǎn)故障、同步阻塞

存在腦裂風(fēng)險(xiǎn)(部分提交、部分回滾)

XA事務(wù)實(shí)踐

  • 外部XA:跨多數(shù)據(jù)庫實(shí)例,由應(yīng)用代碼協(xié)調(diào)(如PHP示例中的多庫事務(wù))。
  • 內(nèi)部XA:單實(shí)例多存儲引擎事務(wù),由Binlog協(xié)調(diào)(如MySQL內(nèi)部機(jī)制)。

隨堂測驗(yàn)

  1. **?** 讀寫分離僅提升讀性能,寫仍由主機(jī)處理。
  2. **?** 分庫分表分散寫壓力,提升寫性能。
  3. **?** 中間件可能成性能瓶頸,需謹(jǐn)慎設(shè)計(jì) ? 中間件性能:取決于架構(gòu)設(shè)計(jì)(如集群化),不可一概而論 。
  4. **?** 3PC存在腦裂風(fēng)險(xiǎn),不優(yōu)先于2PC ? 3PC與2PC選擇:需權(quán)衡「一致性要求」與「系統(tǒng)可用性」,無絕對優(yōu)先級
  5. **?** 協(xié)調(diào)者可為代碼(外部XA)或獨(dú)立系統(tǒng)(如Binlog)。

思考題解析

  • 為何傳統(tǒng)數(shù)據(jù)庫不自帶分庫分表?
    關(guān)系型數(shù)據(jù)庫(如MySQL)設(shè)計(jì)側(cè)重ACID,分片會破壞事務(wù)和Join,需業(yè)務(wù)層權(quán)衡;而Redis/MongoDB等為高擴(kuò)展設(shè)計(jì),犧牲部分特性(如強(qiáng)一致性)內(nèi)置Sharding支持。

站在巨人的肩膀上,架構(gòu)之路更從容!

圖片圖片


責(zé)任編輯:武曉燕 來源: 二進(jìn)制跳動
相關(guān)推薦

2018-08-29 11:57:17

分布式存儲優(yōu)點(diǎn)

2022-06-14 15:28:37

數(shù)據(jù)庫存儲系統(tǒng)變革趨勢

2025-02-14 08:50:00

架構(gòu)開發(fā)軟件

2023-08-22 13:16:00

分布式數(shù)據(jù)庫架構(gòu)數(shù)據(jù)存儲

2024-10-08 11:21:11

2023-08-27 16:11:35

數(shù)據(jù)庫分布式事務(wù)數(shù)據(jù)庫

2023-03-07 09:49:04

分布式數(shù)據(jù)庫

2020-02-10 19:16:52

服務(wù)端高并發(fā)架構(gòu)

2024-12-11 12:41:33

2020-11-20 14:49:56

數(shù)據(jù)庫

2023-12-18 09:03:53

MatrixOneNewSQL數(shù)據(jù)庫

2017-12-12 14:51:15

分布式緩存設(shè)計(jì)

2019-09-25 09:01:53

高并發(fā)架構(gòu)分布式

2019-12-17 11:18:37

高并發(fā)分布式架構(gòu)

2023-12-11 09:11:14

TDSQL技術(shù)架構(gòu)

2023-10-19 07:09:57

NewSQL數(shù)據(jù)庫

2014-06-30 14:20:05

NoSQL數(shù)據(jù)庫

2022-06-10 09:00:00

數(shù)據(jù)庫分布式數(shù)據(jù)庫集群

2021-11-08 10:52:02

數(shù)據(jù)庫分布式技術(shù)

2024-09-27 09:56:43

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品无码久久久久久国产 | 久久久久国产一区二区三区四区 | 国内精品视频一区二区三区 | 久久久精品视频免费看 | 韩日在线| 神马福利| 免费在线黄 | 人人玩人人干 | 成人区精品一区二区婷婷 | 欧美中文在线 | 精品国产视频 | 成人亚洲在线 | 免费观看的黄色网址 | 久久影音先锋 | 精品精品视频 | 久久久久欧美 | 午夜免费观看体验区 | 一级黄色片毛片 | 亚洲啊v在线 | 亚洲伊人精品酒店 | 成人a视频在线观看 | 久久久久一区 | 日韩视频一区二区在线 | 日韩精品免费 | 国产精品美女久久久久aⅴ国产馆 | 亚洲精品小视频在线观看 | 国产一区二区三区亚洲 | 精产国产伦理一二三区 | 色伊人久久 | 日韩精品一区二区三区中文在线 | 亚洲影音 | 婷婷国产一区二区三区 | 久久99精品久久 | 中文字幕一级毛片视频 | 天天躁天天操 | 亚洲精品 在线播放 | 超碰在线播 | 草久免费视频 | 欧美色综合一区二区三区 | 国产精品久久久久婷婷二区次 | 久久久久国产一区二区三区 |