91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解數據庫讀寫分離架構?

發布時間:2021-11-29 09:59:41 來源:億速云 閱讀:123 作者:柒染 欄目:數據庫

如何理解數據庫讀寫分離架構?,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

RD:數據量太大,數據庫扛不住了,幫忙申請一個從庫,讀寫分離。

DBA:數據量多少?

RD:5000w左右。

DBA:讀寫吞吐量呢?

RD:讀QPS約200,寫QPS約30左右。

額,數據庫讀寫分離雖然不難,但并不是所有的“數據庫扛不住”的場景,都應該用讀寫分離。今天花1分鐘簡單介紹下這個場景。

什么是數據庫讀寫分離?

如何理解數據庫讀寫分離架構?

一主多從,讀寫分離,主動同步,是一種常見的數據庫架構,一般來說:

  • 主庫,提供數據庫寫服務

  • 從庫,提供數據庫讀服務

  • 主從之間,通過某種機制同步數據,例如mysql的binlog

一個組從同步集群通常稱為一個“分組”。

分組架構究竟解決什么問題?

大部分互聯網業務讀多寫少,數據庫的讀往往最先成為性能瓶頸,如果希望:

  • 線性提升數據庫讀性能

  • 通過消除讀寫鎖沖突提升數據庫寫性能

此時可以使用分組架構。

一句話,分組主要解決“數據庫讀性能瓶頸”問題,在數據庫扛不住讀的時候,通常讀寫分離,通過增加從庫線性提升系統讀性能。

什么是數據庫水平切分?

如何理解數據庫讀寫分離架構?

水平切分,也是一種常見的數據庫架構,一般來說:

  • 每個數據庫之間沒有數據重合,沒有類似binlog同步的關聯

  • 所有數據并集,組成全部數據

  • 會用算法,來完成數據分割,例如“取模”

一個水平切分集群中的每一個數據庫,通常稱為一個“分片”。

水平切分架構究竟解決什么問題?

大部分互聯網業務數據量很大,單庫容量容易成為瓶頸,如果希望:

  • 線性降低單庫數據容量

  • 線性提升數據庫寫性能

此時可以使用水平切分架構。

一句話總結,水平切分主要解決“數據庫數據量大”問題,在數據庫容量扛不住的時候,通常水平切分。

我為什么不喜歡讀寫分離?

對于互聯網大數據量,高并發量,高可用要求高,一致性要求高,前端面向用戶的業務場景,如果數據庫讀寫分離:

  • 數據庫連接池需要區分:讀連接池,寫連接池

  • 如果要保證讀高可用,讀連接池要實現故障自動轉移

  • 有潛在的主庫從庫一致性問題

  • 如何理解數據庫讀寫分離架構?

  • 如果面臨的是“讀性能瓶頸”問題,增加緩存可能來得更直接,更容易一點

  • 關于成本,從庫的成本比緩存高不少

  • 對于云上的架構,以阿里云為例,主庫提供高可用服務,從庫不提供高可用服務

所以,上述業務場景下,建議使用緩存架構來加強系統讀性能,替代數據庫主從分離架構。

當然,使用緩存架構的潛在問題:如果緩存掛了,流量全部壓到數據庫上,數據庫會雪崩。因此,對緩存,一般也會做水平切分,確保不會同一時間全掛。

總結

  • 讀寫分離,解決“數據庫讀性能瓶頸”問題

  • 水平切分,解決“數據庫數據量大”問題

  • 對于互聯網大數據量,高并發量,高可用要求高,一致性要求高,前端面向用戶的業務場景,微服務緩存架構,可能比數據庫讀寫分離架構更合適

關于如何理解數據庫讀寫分離架構?問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

烟台市| 洪湖市| 丹江口市| 达日县| 水城县| 临高县| 泽库县| 合阳县| 奉贤区| 腾冲县| 福鼎市| 临泽县| 安义县| 蒙自县| 伊通| 焉耆| 卢龙县| 和平区| 江山市| 怀集县| 金川县| 西畴县| 芒康县| 宜章县| 宜黄县| 青阳县| 原平市| 通州区| 桂林市| 南开区| 比如县| 连城县| 墨江| 个旧市| 通化市| 延寿县| 盐池县| 麻城市| 搜索| 安陆市| 镇安县|