狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

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

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

什么是讀寫分離

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

主從庫之間通過某種通訊機制進行數據的同步,是一種常見的數據庫架構。

 

為什么要讀寫分離呢?

因為數據庫的“寫”,比如:10000條數據到oracle可能要3分鐘,操作是比較耗時的。

但是數據庫的“讀”,比如:從oracle讀10000條數據可能只要5秒鐘,相對應寫就沒有這么耗時。

所以讀寫分離解決的是:把數據庫的寫入與查詢,在服務器上分開來,從而可以極大的提升查詢效率。

 

什么時候要讀寫分離?

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

這樣可以減少數據庫壓力,提高性能,當然數據庫也有其它優化方案,比如:分庫分表,或是搜索引擎等都是解決方法。

 

讀寫分離的原理

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

讀寫分離是為了將請求流量分散到不同的數據庫節點上,將寫入數據的請求分發到主數據庫,讀取數據的請求分發到從數據庫,從數據可以有多臺,即一主多從。

整體架構如下圖:

從上圖可看出,有個關鍵技術就是主從復制,每次寫入數據的時候,需要將主服務器數據復制到從服務器中,用來確保數據一致性。

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

主從復制

  1. 從服務器連接上主服務器,啟動復制的時候,則會自身創建一個IO線程去像主數據庫服務器拉取binlog的更新信息。

  2. 把拉過來的binlog信息寫到自己服務器的一個relay log日志文件中。

  3. 從數據庫服務器創建一個SQL線程,是為了將relay log的所有日志信息,進行sql回寫到自己的數據庫中,這樣就和主庫的數據一模一樣了。

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

 

讀寫分離總結

在實際的生產環境中,對數據庫的讀和寫都在同一個數據庫服務器中,是不能滿足實際需求的,無論是在安全性、高可用性還是高并發等各個方面都是完全不能滿足實際需求的。

因此,通過主從復制的方式來同步數據,再通過讀寫分離來提升數據庫的并發負載能力,即可以解決可用性的問題,又解決了數據庫性能問題。


-end-


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