自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

想用數(shù)據(jù)庫“讀寫分離” 請先明白“讀寫分離”解決什么問題

數(shù)據(jù)庫
有一些技術同學可能對于“讀寫分離”了解不多,認為數(shù)據(jù)庫的負載問題都可以使用“讀寫分離”來解決。這其實是一個非常大的誤區(qū),我們要用“讀寫分離”,首先應該明白“讀寫分離”是用來解決什么樣的問題的,而不是僅僅會用這個技術。

有一些技術同學可能對于“讀寫分離”了解不多,認為數(shù)據(jù)庫的負載問題都可以使用“讀寫分離”來解決。

 

[[246332]]

 

這其實是一個非常大的誤區(qū),我們要用“讀寫分離”,首先應該明白“讀寫分離”是用來解決什么樣的問題的,而不是僅僅會用這個技術。

什么是讀寫分離?

其實就是將數(shù)據(jù)庫分為了主從庫,一個主庫用于寫數(shù)據(jù),多個從庫完成讀數(shù)據(jù)的操作,主從庫之間通過某種機制進行數(shù)據(jù)的同步,是一種常見的數(shù)據(jù)庫架構。

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

 

[[246333]]

 

數(shù)據(jù)庫分組架構解決什么問題?

大多數(shù)互聯(lián)網(wǎng)業(yè)務,往往讀多寫少,這時候,數(shù)據(jù)庫的讀會首先稱為數(shù)據(jù)庫的瓶頸,這時,如果我們希望能夠線性的提升數(shù)據(jù)庫的讀性能,消除讀寫鎖沖突從而提升數(shù)據(jù)庫的寫性能,那么就可以使用“分組架構”(讀寫分離架構)。

用一句話概括,讀寫分離是用來解決數(shù)據(jù)庫的讀性能瓶頸的。

 

[[246334]]

 

但是,不是任何讀性能瓶頸都需要使用讀寫分離,我們還可以有其他解決方案。

在互聯(lián)網(wǎng)的應用場景中,常常數(shù)據(jù)量大、并發(fā)量高、高可用要求高、一致性要求高,如果使用“讀寫分離”,就需要注意這些問題:

  • 數(shù)據(jù)庫連接池要進行區(qū)分,哪些是讀連接池,哪個是寫連接池,研發(fā)的難度會增加;
  • 為了保證高可用,讀連接池要能夠實現(xiàn)故障自動轉移;
  • 主從的一致性問題需要考慮。

在這么多的問題需要考慮的情況下,如果我們僅僅是為了解決“數(shù)據(jù)庫讀的瓶頸問題”,為什么不選擇使用緩存呢?

為什么用緩存

緩存,也是互聯(lián)網(wǎng)中常常使用到的一種架構方式,同“讀寫分離”不同,讀寫分離是通過多個讀庫,分攤了數(shù)據(jù)庫讀的壓力,而存儲則是通過緩存的使用,減少了數(shù)據(jù)庫讀的壓力。他們沒有誰替代誰的說法,但是,如果在緩存的讀寫分離進行二選一時,還是應該首先考慮緩存。

 

[[246335]]

 

為什么呢?

  • 緩存的使用成本要比從庫少非常多;
  • 緩存的開發(fā)比較容易,大部分的讀操作都可以先去緩存,找不到的再滲透到數(shù)據(jù)庫。

當然,如果我們已經(jīng)運用了緩存,但是讀依舊還是瓶頸時,就可以選擇“讀寫分離”架構了。簡單來說,我們可以將讀寫分離看做是緩存都解決不了時的一種解決方案。

當然,緩存也不是沒有缺點的

對于緩存,我們必須要考慮的就是高可用,不然,如果緩存一旦掛了,所有的流量都同時聚集到了數(shù)據(jù)庫上,那么數(shù)據(jù)庫是肯定會掛掉的。

 

[[246336]]

 

對于常見的數(shù)據(jù)庫瓶頸是什么呢?

其實是數(shù)據(jù)容量的瓶頸。例如訂單表,數(shù)據(jù)量只增不減,歷史數(shù)據(jù)又必須要留存,非常容易成為性能的瓶頸,而要解決這樣的數(shù)據(jù)庫瓶頸問題,“讀寫分離”和緩存往往都不合適,最適合的是什么呢?

 

[[246337]]

 

數(shù)據(jù)庫水平切分

什么是數(shù)據(jù)庫水平切分?

數(shù)據(jù)庫水平切分,也是一種常見的數(shù)據(jù)庫架構,是一種通過算法,將數(shù)據(jù)庫進行分割的架構。一個水平切分集群中的每個數(shù)據(jù)庫,通常稱為一個“分片”。每一個分片中的數(shù)據(jù)沒有重合,所有分片中的數(shù)據(jù)并集組成全部數(shù)據(jù)。

 

[[246338]]

 

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

大部分的互聯(lián)網(wǎng)業(yè)務,數(shù)據(jù)量都非常大,單庫容量最容易成為瓶頸,當單庫的容量成為了瓶頸,我們希望提高數(shù)據(jù)庫的寫性能,降低單庫容量的話,就可以采用水平切分了。

而有少部分程序員,會沒有分析數(shù)據(jù)庫的性能瓶頸是什么,就貿(mào)貿(mào)然的使用“讀寫分離”,殊不知“水平切分”才是正道。

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2022-12-15 09:44:29

數(shù)據(jù)庫利器

2018-01-15 05:54:45

數(shù)據(jù)庫讀寫分離互聯(lián)網(wǎng)

2018-01-09 18:46:44

數(shù)據(jù)庫架構讀寫分離

2017-03-14 13:12:19

2022-12-05 07:51:24

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

2024-09-20 07:38:00

數(shù)據(jù)庫性能策略

2020-03-24 14:16:18

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

2018-02-24 19:37:33

Java8數(shù)據(jù)庫中間件

2021-03-08 08:16:42

MySQL分離架構

2020-05-26 10:42:31

數(shù)據(jù)庫讀寫分離數(shù)據(jù)庫架構

2019-09-30 09:19:54

Redis分離云數(shù)據(jù)庫

2020-01-03 16:30:14

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

2025-04-22 09:31:52

2017-05-25 10:22:13

NoSQL數(shù)據(jù)庫主主備份

2021-03-26 08:20:51

SpringBoot讀寫分離開發(fā)

2023-07-07 08:36:45

配置注解jar

2022-04-25 08:03:57

MySQL中間件MyCat

2009-05-04 09:13:52

PHPMySQL讀寫分離

2017-09-04 09:53:58

MySQLAtlasNavicat

2020-04-23 15:08:41

SpringBootMyCatJava
點贊
收藏

51CTO技術棧公眾號