1. 程式人生 > >SQL優化-讀寫分離-主從複製

SQL優化-讀寫分離-主從複製

一、讀寫分離概述
讀寫分離從字面意思就可以理解,就是把對資料庫的讀操作和寫操作分離開。讀寫分離在網站發展初期可以一定程度上緩解讀寫併發時產生鎖的問題,將讀寫壓力分擔到多臺伺服器上,通常用於讀遠大於寫的場景。
讀寫分離的基本原理是讓主資料庫處理事務性增、改、刪操作(INSERT、UPDATE、DELETE),而從資料庫處理SELECT查詢操作。資料庫複製被用來把事務性操作導致的變更同步到叢集中的從資料庫。單表的資料量限制,當單表資料量到一定條數之後資料庫效能會顯著下降。資料多了之後,對資料庫的讀、寫就會很多。分庫減少單臺數據庫的壓力。
以oracle為例,主庫負責寫資料、讀資料。讀庫僅負責讀資料。每次有寫庫操作,同步更新cache,每次讀取先讀cache在讀DB。寫庫就一個,讀庫可以有多個,採用dataguard來負責主庫和多個讀庫的資料同步。
二、讀寫分離的好處

1.資料是網站的生命,讀寫分離通過主從備份資料,保證了系統的冗餘,保護了珍貴的資料。
2.提高了系統性能,一定程度提高了資料庫負載能力。
三、適用讀寫分離場景
1.網站初期想要緩解資料負載最簡單可行的方案。
2.伺服器面對的是讀遠大於寫的場景,並且業務能夠允許時間上一些延遲。
四、讀寫分離實現方式
目前讀寫分離方案網上找了幾個並做了對比。
1.mycat 基於阿里的cobar改版的(比較穩定,論壇活躍)
2.atlas 360開發的 網友說不是很穩定 (已經很久沒更新)
3.mysql-proxy mysql自帶 (不是很穩定)
4.oneproxy 比較穩定 效能也很好 (需要付費)
5.amoeba 好像還行,有一些公司使用 (但是很久沒有更新了)
五、主從複製

主從複製,是用來建立一個和主資料庫完全一樣的資料庫環境,稱為從資料庫;
主資料庫一般是實時的業務資料庫,從資料庫的作用和使用場合一般有幾個:
一是作為後備資料庫,主資料庫伺服器故障後,可切換到從資料庫繼續工作;
二是可在從資料庫作備份、資料統計等工作,這樣不影響主資料庫的效能;
mysql支援單向、非同步複製,複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。
mysql複製基於主伺服器在二進位制日誌中跟蹤所有對資料庫的更改(更新、刪除等等)。
因此,要進行復制,必須在主伺服器上啟用二進位制日誌。每個從伺服器接收主伺服器已經記錄的二進位制日誌來儲存更新。
當一個從伺服器連線主伺服器時,它通知主伺服器從日誌中讀取最後一次成功更新的位置。
從伺服器接收從那時起發生的任何更新,並在本機上執行相同的更新。然後封鎖並等待主伺服器通知新的更新。
從伺服器執行備份不會干擾主伺服器,在備份過程中主伺服器可以繼續處理更新

相關推薦

SQL優化-分離-主從複製

一、讀寫分離概述 讀寫分離從字面意思就可以理解,就是把對資料庫的讀操作和寫操作分離開。讀寫分離在網站發展初期可以一定程度上緩解讀寫併發時產生鎖的問題,將讀寫壓力分擔到多臺伺服器上,通常用於讀遠大於寫的場景。 讀寫分離的基本原理是讓主資料庫處理事務性增、改、刪操作(INSER

amoeba實現mysql分離+主從復制架構

mysql amoeba 讀寫分離 主從復制一、環境系統:centos6.5mysql版本:mysql5.6master服務器:192.168.1.21slave服務器: 192.168.1.100master寫 slave讀二、實現mysql主從復制在master的/etc/my.cnf中[mysqld]字

MySQL的分離---主從復制、主主復制

oca err chan seconds 服務 warn ice binlog日誌 count 1.復制是基於BinLog日誌 存在三種日誌格式:Statement:存儲Sql語句,存儲日誌量是最小的。有可能復制不一致Row:存儲event數據,存儲日誌量大,但是不能很直

SQL Server分離之發布訂閱

font 提示 自己 strong xxx 實時 mss 創建 實時同步   一、發布   上面有多種發布方式,這裏我選擇事物發布,具體區別請自行百度。   點擊下一步、然後繼續選擇需要發布的對象。    如果需要篩選發布的數據點擊添加。   根據自

Mysql分離——主從資料庫+Atlas

mysql叢集 最近在參加專案開發微信小程式後臺,由於使用者數量巨大,且後臺程式並不是很完美,所以對使用者的體驗很是不友好(簡單說就是很卡)。趕巧最近正在翻閱《大型網站系統與Java中介軟體實踐》。 所以,先是使用Docker swarm構建了負載均衡叢集,然後使用Atlas做了資料庫的讀寫分離,儘可能對使用

資料庫分離,主從同步實現方法

SyncNavigator 資料酷同步工具 做資料同步時所支援的資料庫型別: 支援sqlserver 2000-2014所有版本,全相容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 來源資料庫和目標資料庫可以版本不同,比如:來源資料庫是sq

CentOS 6.5 -- Redis 4.0.2分離主從架構

講之前,我先來隨性的扯一扯什麼是redis,大多說法是快取資料庫,但是如果只說是快取,給人的感覺就是資料放在記憶體中隨時會因為系統斷電而造成資料的丟失,如果說是資料庫,又給人感覺這和MSSQL、Mysql以及Oracle又有什麼區別呢?事實上,redis也不能單獨的作為資料

Mysql分離,同步複製的探索實現

材料: linux-mysql57,windows10-mysql57,均安裝好了mysql資料庫,讓linux負責資料庫的寫入,然後同步到windows 資料庫,windows負責資料庫的查詢工作。

[mysql終極優化]之主從複製分離詳細設定教程

記下File及Position下的值。以備在配置從伺服器時使用。 注:File:當前binlog的檔名,每重啟一次mysql,就會生成一個新binlog檔案       Position:當前binlog的指標位置 三、從伺服器配置 1、配置mysql.cnf # vi /etc/my.cnf (1)修改

主從同步、分離、mysql性能調優(軟優化)

tab ren 主庫 its 使用命令 mysql lee 運行 lte 配置mysql主從同步1 主從同步的作用:讓slave身份的數據庫服務器自動同步 master身份的數據庫服務器上的數據。 一、主數據庫服務器的配置192.168.4.121 用戶授權mysql&g

MYSQL主從複製+分離

案例 搭建MYSQL主從複製 這裡mysql伺服器都裝好了的 yum -y install ntp #裝ntp時間同步 vim /etc/ntp.conf #配置檔案 server 127.127.1.0 fudge 127.127.1.0 strat

mysql主從複製分離之——proxysql應用

一、說明ProxySQL是一個開源的MySQL代理伺服器,這意味著它充當MySQL伺服器和訪問其資料庫的應用程式之間的中介。ProxySQL可以通過在多個數據庫伺服器池之間分配流量來提高效能,並且如果一個或多個數據庫伺服器發生故障,還可以通過自動故障切換到備用資料庫來提高可用性。 系統環境:master1:

MySQL高可用--主從複製分離

一、Mysql高可用概念  二、MySQL主從複製原理  叢集目的,減輕單臺伺服器壓力 三、MySQL主從複製配置 實際操作mysql伺服器叢集,主從複製的過程 master   192.168.230.128 slav

使用 Spring Aop 與 Mysql 的主從複製功能實現分離

使用 Spring Aop 與 Mysql 的主從複製功能實現讀寫分離。讀寫分離:將應用程式中對資料庫的寫的操作是一個數據庫;對資料庫讀取資料的是另外一個數據庫。而兩個資料庫的資料需要保證一致。 在應用程式中,可以使用 spring aop 對將要執行的業務方法的特徵進行判斷,如:包含 query、find

(二)mycat搭建主從複製,實現分離

環境準備 準備三臺linux伺服器,mycat、mycatmaster、mycatslave,分別安裝好mycat服務、mysql服務、mysql服務 mycatmaster和mycatslave基於binlog實現主從複製,見主從複製搭建 mycat配置 mycat權威指南中配

使用Mycat實現Mysql資料庫的主從複製分離、分表分庫、負載均衡和高可用

Mysql叢集搭建 使用Mycat實現Mysql資料庫的主從複製、讀寫分離、分表分庫、負載均衡和高可用(Haproxy+keepalived),總體架構:   說明:資料庫的訪問通過keepalived的虛擬IP訪問HAProxy負載均衡器,實現HAProxy的高可用,HAProxy用於實

Docker Mysql 主從複製+分離

整體規劃 host ----------- ip--------------------port---------------------說明 -----------------192.168.100.30 10088 Keepalived-VIP Proxysql-21 192.168

redis主從複製 從而 資料備份和分離

蝸牛Redis系列文章目錄http://www.cnblogs.com/tdws/tag/NoSql/ 爬蟲轉載註明地址本文地址—部落格園蝸牛 http://www.cnblogs.com/tdws/p/5705782.html 雲伺服器過期了,這次測試就放在本地(127.0.0.1)。三個

ORACLE 資料同步 容災備份恢復 主從架構 分離 (OGG,ADG,DSG,高階複製,流複製,logmnr)

ORACLE 幾種同步災備手段(OGG,ADG,DSG,高階複製,流複製,logmnr) 2017年07月14日 13:45:47 小學生湯米 閱讀數:11073 目前所接觸的Oracle 的災備以及同步手段主要有ADG,OGG,DSG,高階複製,流複製以及自主開發的基於

Java架構學習(三十)redis高階&redis高可用&主從複製&分離&叢集&哨兵機制&持久化RDB儲存&持久化AOF儲存&事務機制&Redis釋出訂閱

redis高階 一、基礎回顧 什麼是redis? 答:redis是非關係型資料庫,使用redis的目的是:減輕資料庫訪問壓力。 資料庫是做IO操作,使用redis是記憶體操作,記憶體資料庫, 效率要比IO效率高。這個就是快取。 如果資料庫值與redis