LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL Server/MySQL數(shù)據(jù)庫(kù)讀寫分離最全詳解(看這篇就夠了)

admin
2024年1月23日 12:20 本文熱度 1156

什么是讀寫分離

讀寫分離就是將數(shù)據(jù)庫(kù)分為主從庫(kù),一個(gè)主庫(kù)(Master)用于寫數(shù)據(jù),多個(gè)從庫(kù)(Slaver)進(jìn)行輪詢讀取數(shù)據(jù)的過程。

主從庫(kù)之間通過某種通訊機(jī)制進(jìn)行數(shù)據(jù)的同步,是一種常見的數(shù)據(jù)庫(kù)架構(gòu)。

 

為什么要讀寫分離呢?

因?yàn)閿?shù)據(jù)庫(kù)的“寫”,比如:10000條數(shù)據(jù)到oracle可能要3分鐘,操作是比較耗時(shí)的。

但是數(shù)據(jù)庫(kù)的“讀”,比如:從oracle讀10000條數(shù)據(jù)可能只要5秒鐘,相對(duì)應(yīng)寫就沒有這么耗時(shí)。

所以讀寫分離解決的是:把數(shù)據(jù)庫(kù)的寫入與查詢,在服務(wù)器上分開來(lái),從而可以極大的提升查詢效率。

 

什么時(shí)候要讀寫分離?

數(shù)據(jù)庫(kù)不一定要讀寫分離,但是如果程序使用數(shù)據(jù)庫(kù)較多時(shí),而更新少,查詢多的情況下就可以考慮使用。

這樣可以減少數(shù)據(jù)庫(kù)壓力,提高性能,當(dāng)然數(shù)據(jù)庫(kù)也有其它優(yōu)化方案,比如:分庫(kù)分表,或是搜索引擎等都是解決方法。

 

讀寫分離的原理

讀寫分離基本的原理是讓主數(shù)據(jù)庫(kù)處理事務(wù)性增、改、刪操作(INSERT、UPDATE、DELETE),而從數(shù)據(jù)庫(kù)處理SELECT查詢操作。

讀寫分離是為了將請(qǐng)求流量分散到不同的數(shù)據(jù)庫(kù)節(jié)點(diǎn)上,將寫入數(shù)據(jù)的請(qǐng)求分發(fā)到主數(shù)據(jù)庫(kù),讀取數(shù)據(jù)的請(qǐng)求分發(fā)到從數(shù)據(jù)庫(kù),從數(shù)據(jù)可以有多臺(tái),即一主多從。

整體架構(gòu)如下圖:

從上圖可看出,有個(gè)關(guān)鍵技術(shù)就是主從復(fù)制,每次寫入數(shù)據(jù)的時(shí)候,需要將主服務(wù)器數(shù)據(jù)復(fù)制到從服務(wù)器中,用來(lái)確保數(shù)據(jù)一致性。

下面我以MySQL的主從復(fù)制為例,如下圖所示:

主從復(fù)制

  1. 從服務(wù)器連接上主服務(wù)器,啟動(dòng)復(fù)制的時(shí)候,則會(huì)自身創(chuàng)建一個(gè)IO線程去像主數(shù)據(jù)庫(kù)服務(wù)器拉取binlog的更新信息。

  2. 把拉過來(lái)的binlog信息寫到自己服務(wù)器的一個(gè)relay log日志文件中。

  3. 從數(shù)據(jù)庫(kù)服務(wù)器創(chuàng)建一個(gè)SQL線程,是為了將relay log的所有日志信息,進(jìn)行sql回寫到自己的數(shù)據(jù)庫(kù)中,這樣就和主庫(kù)的數(shù)據(jù)一模一樣了。

  4. 當(dāng)主數(shù)據(jù)庫(kù)有數(shù)據(jù)更新的時(shí)候,比如新插入了一條或者update了一條數(shù)據(jù),這時(shí)候主庫(kù)會(huì)將這些數(shù)據(jù)更新到binlog二進(jìn)制文件中,同時(shí),主庫(kù)會(huì)創(chuàng)建一個(gè)binlog dump線程,這個(gè)線程將更新了的binlog信息發(fā)送到從庫(kù)的IO線程,需要注意的是,這個(gè)過程是異步的,如果等著從庫(kù)接受完成,是不是特別慢,且影響性能。

 

讀寫分離總結(jié)

在實(shí)際的生產(chǎn)環(huán)境中,對(duì)數(shù)據(jù)庫(kù)的讀和寫都在同一個(gè)數(shù)據(jù)庫(kù)服務(wù)器中,是不能滿足實(shí)際需求的,無(wú)論是在安全性、高可用性還是高并發(fā)等各個(gè)方面都是完全不能滿足實(shí)際需求的。

因此,通過主從復(fù)制的方式來(lái)同步數(shù)據(jù),再通過讀寫分離來(lái)提升數(shù)據(jù)庫(kù)的并發(fā)負(fù)載能力,即可以解決可用性的問題,又解決了數(shù)據(jù)庫(kù)性能問題。


-end-


該文章在 2024/1/23 12:20:44 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日韩免费码中文字幕在线 | 午夜福利福利AV | 色资源网站在线观看不卡 | 亚洲欧美日韩人成在线播放 | 中文字幕特黄一级日本 | 在线国内在线播放 |