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

讀寫分離最全詳解(圖文全面總結(jié))

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
讀寫分離是提升數(shù)據(jù)庫(kù)性能和擴(kuò)展性的有效手段,通過將讀操作分散到多個(gè)從數(shù)據(jù)庫(kù)上,可以顯著提高系統(tǒng)的并發(fā)處理能力、和響應(yīng)速度。

讀寫分離

讀寫分離是一種常見的數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì),從字面上就很容易理解,就是數(shù)據(jù)的:“讀”、和“寫”分離。

如下圖所示:

圖片圖片

寫操作(包括:插入、更新和刪除操作...等等),由主數(shù)據(jù)庫(kù)(Master)處理。

而讀操作(包括:查詢...等操作),由從數(shù)據(jù)庫(kù)(Slave)處理。

這就是“讀寫分離”,通過將讀操作分散到多個(gè)從數(shù)據(jù)庫(kù)上,減少主數(shù)據(jù)庫(kù)的負(fù)載,從而,極大的提升整個(gè)系統(tǒng)的并發(fā)處理能力。

讀寫分離實(shí)現(xiàn)原理

上面我們談了“讀寫分離”的價(jià)值,對(duì)于互聯(lián)網(wǎng)應(yīng)用“讀多”和“寫少”的場(chǎng)景,比如:電商等典型業(yè)務(wù)是非常適用的。

知道了其重要性,下面我接著談:如何來(lái)實(shí)現(xiàn)”讀寫分離“?

讀寫分離的架構(gòu)實(shí)現(xiàn),整體如下圖所示:

圖片圖片

從上圖可看出,讀寫分離是基于:“主從復(fù)制架構(gòu)”來(lái)實(shí)現(xiàn)的。

  • 主數(shù)據(jù)庫(kù):負(fù)責(zé)處理所有的寫操作(比如:插入、更新、刪除...)。
  • 從數(shù)據(jù)庫(kù):通過復(fù)制機(jī)制從主數(shù)據(jù)庫(kù)獲取并應(yīng)用數(shù)據(jù)更改,處理所有的讀操作。

通過上面的講述,知道了實(shí)現(xiàn)機(jī)制依賴于“主從復(fù)制”。

所以,要掌握好讀寫分離的原理,還需要掌握“主從復(fù)制”的實(shí)現(xiàn)機(jī)制原理。

下面,我接著談@mikechen

我以MySQL的主從復(fù)制為例,整體架構(gòu)實(shí)現(xiàn),如下圖所示:

圖片圖片

實(shí)現(xiàn)步驟,大致分為如下幾點(diǎn):

第一步:主數(shù)據(jù)庫(kù)記錄二進(jìn)制日志(binlog);

比如:當(dāng)主數(shù)據(jù)庫(kù)執(zhí)行寫操作,比如:INSERT、UPDATE、DELETE。。。等操作時(shí),首先,這些操作會(huì)被記錄到二進(jìn)制日志中。

MySQL 二進(jìn)制日志(Binlog):是 MySQL 服務(wù)器用來(lái)記錄所有更改數(shù)據(jù)庫(kù)數(shù)據(jù)操作的日志文件,包括 DDL 語(yǔ)句和 DML 語(yǔ)句。

[mysqld]
log-bin=mysql-bin           # 啟用二進(jìn)制日志并指定日志文件前綴
server-id=1                 # 設(shè)置服務(wù)器唯一 ID
binlog-format=row           # 設(shè)置 Binlog 格式(row、statement、mixed)
expire-logs-days=7          # 自動(dòng)清除超過7天的 Binlog 文件
max_binlog_size=100M        # 單個(gè) Binlog 文件的最大大小

所有數(shù)據(jù)更改的詳細(xì)信息,都放在這個(gè)二進(jìn)制文件中,是主從復(fù)制的核心。

第二步:從數(shù)據(jù)庫(kù)讀取二進(jìn)制日志(binlog);

從數(shù)據(jù)庫(kù)通過I/O線程,連接到主數(shù)據(jù)庫(kù),讀取主數(shù)據(jù)庫(kù)的二進(jìn)制日志,并將其保存到本地的中繼日志(relay log)中。

大致流程:

  • I/O線程啟動(dòng):從數(shù)據(jù)庫(kù)上的I/O線程,使用專用的復(fù)制用戶連接到主數(shù)據(jù)庫(kù);
  • 讀取二進(jìn)制日志:I/O線程讀取主數(shù)據(jù)庫(kù)的二進(jìn)制日志,將其內(nèi)容寫入到從數(shù)據(jù)庫(kù)的中繼日志中;
  • 日志同步:I/O線程不斷地從主數(shù)據(jù)庫(kù)讀取新的二進(jìn)制日志,并更新到中繼日志中。

第三步:從數(shù)據(jù)庫(kù)應(yīng)用中繼日志(relay log)。

從數(shù)據(jù)庫(kù)的SQL線程讀取中繼日志,并重放其中的寫操作,更新從數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

這樣,從數(shù)據(jù)庫(kù)的數(shù)據(jù)狀態(tài)就會(huì)逐步跟上主數(shù)據(jù)庫(kù)。

通過以上步驟,主從復(fù)制實(shí)現(xiàn)了主數(shù)據(jù)庫(kù)與從數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步,從而可以實(shí)現(xiàn)讀寫分離了。

讀寫分離總結(jié)

總之,讀寫分離是提升數(shù)據(jù)庫(kù)性能和擴(kuò)展性的有效手段,通過將讀操作分散到多個(gè)從數(shù)據(jù)庫(kù)上,可以顯著提高系統(tǒng)的并發(fā)處理能力、和響應(yīng)速度。

責(zé)任編輯:武曉燕 來(lái)源: mikechen的互聯(lián)網(wǎng)架構(gòu)
相關(guān)推薦

2024-09-04 09:43:36

2024-07-26 10:35:00

2024-08-29 10:23:42

2024-08-08 13:01:53

2024-08-12 16:09:31

2024-11-06 09:54:58

SpringJava開發(fā)

2024-08-13 15:07:20

2024-08-07 14:56:00

Nginx反向代理配置

2025-05-07 03:33:00

2024-07-12 08:42:58

Redis高性能架構(gòu)

2024-12-31 00:00:01

驅(qū)動(dòng)設(shè)計(jì)應(yīng)用場(chǎng)景業(yè)務(wù)邏輯

2024-09-26 13:33:12

2025-01-15 08:34:00

分布式事務(wù)服務(wù)

2024-11-06 12:29:02

2025-01-26 11:54:39

分布式存儲(chǔ)系統(tǒng)

2024-11-15 12:04:33

K8S容器化應(yīng)用

2024-09-14 11:36:02

2023-07-07 08:36:45

配置注解jar

2021-03-26 08:20:51

SpringBoot讀寫分離開發(fā)

2011-08-30 12:49:59

Mysql ProxyLua分離
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 成人1区 | 欧美一区二区网站 | 女同av亚洲女人天堂 | 欧美日韩一区二区视频在线观看 | www.一区二区三区.com | 欧美一级二级在线观看 | 国产精品视频在线播放 | 欧美日韩亚洲在线 | 国产乱人伦精品一区二区 | 91免费在线视频 | 欧美日韩国产一区 | 一区二区三区四区电影视频在线观看 | 最新超碰 | 国产一区二区三区免费 | 精品日本中文字幕 | 精品乱码一区二区三四区视频 | 操操日 | 欧美激情视频一区二区三区免费 | 精品美女在线观看 | 91九色porny首页最多播放 | 精品国产乱码久久久久久丨区2区 | 免费一区二区三区 | 精品国产免费一区二区三区五区 | 一区二区三区视频 | 欧美淫| 亚洲第一视频 | 久久综合一区 | 91午夜在线 | 亚洲97| 亚洲一区中文字幕在线观看 | 婷婷综合 | 精品免费国产一区二区三区 | 精品中文字幕一区 | 成人免费福利视频 | 精品国产精品国产偷麻豆 | 日韩精品在线播放 | 欧美日韩亚洲一区 | 国产精品免费观看 | 亚洲国产一区二区视频 | 精品视频在线观看 | 9191av |