• <span id="ycodp"></span>
    <span id="ycodp"><small id="ycodp"></small></span>
    1. <label id="ycodp"></label>
      <rt id="ycodp"><tr id="ycodp"><strike id="ycodp"></strike></tr></rt>
      <i id="ycodp"><strong id="ycodp"><ul id="ycodp"></ul></strong></i>
    2. 新聞中心

      掌握最新的咨詢和行業新聞

      < 返回

      如何實現 MySQL 的讀寫分離?

      2023-03-22 10:44 作者:31IDC 閱讀量:364 所屬分類:韓國服務器

      如何實現 MySQL 的讀寫分離?MySQL 主從復制原理是啥?如何解決 MySQL 主從同步的延時問題?

       

       

      如何實現 MySQL 的讀寫分離?

      其實很簡單,就是基于主從復制架構,簡單來說,就搞一個主庫,掛多個從庫,然后我們就單單只是寫主庫,然后主庫會自動把數據給同步到從庫上去。

      MySQL 主從復制原理的是啥?

      主庫將變更寫入 binlog 日志,然后從庫連接到主庫之后,從庫有一個 IO 線程,將主庫的 binlog 日志拷貝到自己本地,寫入一個 relay 中繼日志中。接著從庫中有一個 SQL 線程會從中繼日志讀取 binlog,然后執行 binlog 日志中的內容,也就是在自己本地再次執行一遍 SQL,這樣就可以保證自己跟主庫的數據是一樣的。

      如何實現 MySQL 的讀寫分離


      這里有一個非常重要的一點,就是從庫同步主庫數據的過程是串行化的,也就是說主庫上并行的操作,在從庫上會串行執行。所以這就是一個非常重要的點了,由于從庫從主庫拷貝日志以及串行執行 SQL 的特點,在高并發場景下,從庫的數據一定會比主庫慢一些,是有延時的。所以經常出現,剛寫入主庫的數據可能是讀不到的,要過幾十毫秒,甚至幾百毫秒才能讀取到。

      而且這里還有另外一個問題,就是如果主庫突然宕機,然后恰好數據還沒同步到從庫,那么有些數據可能在從庫上是沒有的,有些數據可能就丟失了。

      所以 MySQL 實際上在這一塊有兩個機制,一個是半同步復制,用來解決主庫數據丟失問題;一個是并行復制,用來解決主從同步延時問題。

      這個所謂半同步復制,也叫 semi-sync 復制,指的就是主庫寫入 binlog 日志之后,就會將強制此時立即將數據同步到從庫,從庫將日志寫入自己本地的 relay log 之后,接著會返回一個 ack 給主庫,主庫接收到至少一個從庫的 ack 之后才會認為寫操作完成了。

      所謂并行復制,指的是從庫開啟多個線程,并行讀取 relay log 中不同庫的日志,然后并行重放不同庫的日志,這是庫級別的并行。

      MySQL 主從同步延時問題(精華)

      以前線上確實處理過因為主從同步延時問題而導致的線上的 bug,屬于小型的生產事故。

      是這個么場景。有個同學是這樣寫代碼邏輯的。先插入一條數據,再把它查出來,然后更新這條數據。在生產環境高峰期,寫并發達到了 2000/s,這個時候,主從復制延時大概是在小幾十毫秒。線上會發現,每天總有那么一些數據,我們期望更新一些重要的數據狀態,但在高峰期時候卻沒更新。用戶跟客服反饋,而客服就會反饋給我們。

      我們通過 MySQL 命令:
      show status

      查看 Seconds_Behind_Master,可以看到從庫復制主庫的數據落后了幾 ms。

      一般來說,如果主從延遲較為嚴重,有以下解決方案:

      • 分庫,將一個主庫拆分為多個主庫,每個主庫的寫并發就減少了幾倍,此時主從延遲可以忽略不計。
      • 打開 MySQL 支持的并行復制,多個庫并行復制。如果說某個庫的寫入并發就是特別高,單庫寫并發達到了 2000/s,并行復制還是沒意義。
      • 重寫代碼,寫代碼的同學,要慎重,插入數據時立馬查詢可能查不到。
      • 如果確實是存在必須先插入,立馬要求就查詢到,然后立馬就要反過來執行一些操作,對這個查詢設置直連主庫不推薦這種方法,你要是這么搞,讀寫分離的意義就喪失了。



      31IDC - 12 年深耕海外 IDC 高端資源

      主站蜘蛛池模板: 久久精品综合电影| 老色鬼久久亚洲AV综合| 综合自拍亚洲综合图不卡区| 91综合久久婷婷久久| 中文字幕亚洲综合久久综合| 亚洲国产精品综合久久一线| 久久狠狠色狠狠色综合| 另类小说图片综合网| 99久久婷婷免费国产综合精品| 色欲人妻综合AAAAAAAA网| 伊人久久大香线蕉综合电影| 国产91色综合久久免费| 久久综合五月丁香久久激情| 亚洲综合精品成人| 色综合色综合色综合色欲| 国产婷婷综合在线视频| 五月天综合色激情| 91精品国产综合久久久久| 国产综合无码一区二区辣椒| 国产精品国产色综合色| 国产婷婷综合丁香亚洲欧洲| 亚洲综合AV在线在线播放| 美腿丝袜亚洲综合| 八区精品色欲人妻综合网| 亚洲综合小说另类图片动图| 久久91综合国产91久久精品| 一本色道久久99一综合| 久久综合一区二区无码| 国产成人综合久久久久久| 一本色道久久88综合亚洲精品高清 | 国产亚洲综合网曝门系列| 色综合伊人色综合网站| 狠狠色成人综合首页| 69国产成人综合久久精品| 久久综合丝袜长腿丝袜| 伊人色综合网一区二区三区| 18和谐综合色区| 色综合天天综合高清网国产 | 亚洲国产成人精品无码久久久久久综合| 色综合天天做天天爱| 亚洲国产精品成人综合色在线|