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

盤點數(shù)據(jù)庫主從延遲的九個原因以及解決方案

數(shù)據(jù)庫 其他數(shù)據(jù)庫
低版本的MySQL只支持單線程復(fù)制,如果主庫并發(fā)高,來不及傳送到從庫,就會導(dǎo)致延遲。可以換用更高版本的Mysql,可以支持多線程復(fù)制。

前言

大家好,我是撿田螺的小男孩

我們來看一道字節(jié)面試題:mysql主從延遲的原因有哪些?你遇到的最大延遲是多大?如何解決?

我以前見過的最大延遲是3個多小時。本文我們一起來聊聊主從延遲吧。

  • 主從延遲的定義
  • 主從延遲原因的9個原因以及解決方案

1. 主從延遲是怎么定義的呢?

與主從數(shù)據(jù)同步相關(guān)的時間點有三個

  • 主庫執(zhí)行完一個事務(wù),寫入binlog,我們把這個時刻記為T1;
  • 主庫同步數(shù)據(jù)給從庫,從庫接收完這個binlog的時刻,記錄為T2;
  • 從庫執(zhí)行完這個事務(wù),這個時刻記錄為T3。

所謂主從延遲,其實就是指同一個事務(wù),在從庫執(zhí)行完的時間和在主庫執(zhí)行完的時間差值,即T3-T1

主從復(fù)制原理不記得的伙伴,可以看這個圖哈:

圖片圖片

2. 主從延遲原因以及解決方法

2.1 網(wǎng)絡(luò)延遲,優(yōu)化網(wǎng)絡(luò)

網(wǎng)絡(luò)延遲是導(dǎo)致主從延遲的一個重要因素。我們要確保主從服務(wù)器之間的網(wǎng)絡(luò)連接是高速且穩(wěn)定的。可以考慮使用專用網(wǎng)絡(luò)連接或提高網(wǎng)絡(luò)帶寬。

比如帶寬20M升級到100M類似意思等。

2.2 從庫的壓力大,多搞幾個從庫分散壓力

如果從庫的壓力大,也會導(dǎo)致主從延遲

比如主庫直接影響業(yè)務(wù)的,大家可能使用會比較克制,因此一般查詢都打到從庫了,結(jié)果導(dǎo)致從庫查詢消耗大量CPU,影響同步速度,最后導(dǎo)致主從延遲。

這種情況的話,可以搞了一主多從的架構(gòu),即多接幾個從庫分攤讀的壓力,增加從庫的數(shù)量可以分散讀取負載,提高數(shù)據(jù)同步的速度和可靠性。 另外,還可以把binlog接入到Hadoop這類系統(tǒng),讓它們提供查詢的能力。

2.3 數(shù)據(jù)庫參數(shù)配置不合理,優(yōu)化調(diào)整

調(diào)整MySQL數(shù)據(jù)庫中的相關(guān)參數(shù),如binlog格式、binlog緩沖區(qū)大小、innodb_flush_log_at_trx_commit等,以優(yōu)化性能。

適當(dāng)?shù)膮?shù)設(shè)置可以減少磁盤I/O和事務(wù)提交延遲

2.4 使用半同步復(fù)制

半同步復(fù)制是介于全同步復(fù)制和異步復(fù)制之間的一種復(fù)制方式。主庫在提交事務(wù)時需要等待至少一個從庫接收到并寫入到relay log中才返回結(jié)果給客戶端。

圖片圖片

這可以提高數(shù)據(jù)的安全性,并減少主從延遲。但需要注意的是,半同步復(fù)制可能會增加寫操作的延遲

2.5 升級硬件配置

如果從庫所在的機器比主庫的機器性能差,會導(dǎo)致主從延遲,這種情況比較好解決,只需選擇主從庫一樣規(guī)格的機器就好。

因此,我們可以:

  • 升級從服務(wù)器的硬件,特別是磁盤I/O系統(tǒng)和CPU,以便更快地應(yīng)用復(fù)制事件。
  • 使用SSD可以顯著提高I/O性能。

這是減少主從延遲時間,最簡單粗暴的方法~~

2.6 避免大事務(wù)

  • 可以將大事務(wù)分解為多個小事務(wù)。

如果一個事務(wù)執(zhí)行就要10分鐘,那么主庫執(zhí)行完后,給到從庫執(zhí)行,最后這個事務(wù)可能就會導(dǎo)致從庫延遲10分鐘啦。日常開發(fā)中,我們?yōu)槭裁刺貏e強調(diào),不要一次性delete太多SQL,需要分批進行,其實也是為了避免大事務(wù)。另外,大表的DDL語句,也會導(dǎo)致大事務(wù),大家日常開發(fā)關(guān)注一下哈。

2.7 使用并行復(fù)制

  • 在MySQL 5.6及以上版本中,可以使用并行復(fù)制來加速從庫應(yīng)用binlog中的事件。
  • 通過設(shè)置slave_parallel_workers參數(shù),可以指定并行工作線程的數(shù)量。

低版本的MySQL只支持單線程復(fù)制,如果主庫并發(fā)高,來不及傳送到從庫,就會導(dǎo)致延遲。可以換用更高版本的Mysql,可以支持多線程復(fù)制。

2.8 業(yè)務(wù)側(cè)加緩存,優(yōu)化查詢

  • 在業(yè)務(wù)側(cè)添加緩存層,如Redis、Memcached等,優(yōu)化查詢接口,以減少對數(shù)據(jù)庫的查詢壓力。

2.9 避免大表DDL操作

  • 大表的DDL操作(如添加索引、修改表結(jié)構(gòu)等)會導(dǎo)致長時間的鎖等待和復(fù)制延遲。
  • 盡量避免在主從復(fù)制環(huán)境中對大表進行DDL操作,或者選擇在業(yè)務(wù)低峰期進行。
責(zé)任編輯:武曉燕 來源: 撿田螺的小男孩
相關(guān)推薦

2017-12-27 13:07:52

數(shù)據(jù)庫MySQL主從復(fù)制

2019-07-16 06:30:19

MySQL同步延遲數(shù)據(jù)庫

2011-08-22 15:31:51

SQL Servermssqlserver數(shù)據(jù)庫復(fù)制

2010-04-26 16:31:09

Oracle SQL

2024-08-14 16:09:10

2009-11-18 16:10:00

2011-03-07 16:42:05

MySQL數(shù)據(jù)庫安全

2024-10-21 08:21:12

數(shù)據(jù)庫主從延遲

2022-03-24 12:15:50

MySQL數(shù)據(jù)庫讀寫分離

2019-03-12 10:30:29

開源備份Borg Backup

2011-03-28 13:11:18

MySQL數(shù)據(jù)庫安全

2011-03-03 18:09:14

2010-05-27 18:24:09

MySQL數(shù)據(jù)庫密碼

2018-03-26 12:58:52

數(shù)據(jù)庫OracleMySQL

2011-01-21 09:43:10

安恒數(shù)據(jù)庫安全安全審計

2011-03-24 15:41:42

數(shù)據(jù)庫

2011-08-03 14:02:02

數(shù)據(jù)庫連接ACCESS

2023-09-21 23:08:36

MySQL數(shù)據(jù)庫死鎖

2010-05-28 11:22:07

2025-04-07 04:45:00

數(shù)據(jù)架構(gòu)訂單
點贊
收藏

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

主站蜘蛛池模板: 91传媒在线观看 | sese视频在线观看 | 国产亚洲精品精品国产亚洲综合 | 麻豆天堂 | 国产精品久久久久久久久久久久 | 亚洲国产精品一区 | 亚洲高清视频在线观看 | 一区二区三区成人 | 欧洲av在线| 国产一区二区三区四区五区3d | 欧美1级| 国产精品一二区 | 一区二区在线免费观看 | 欧美国产在线一区 | 色综合久久伊人 | 午夜影院在线免费观看视频 | 国产日韩欧美在线观看 | 亚洲福利一区二区 | 中文字幕一区二区三区乱码在线 | 天天草狠狠干 | 色欧美日韩 | 成人久久久 | 国产免费xxx | 日韩高清国产一区在线 | 亚洲精选一区二区 | 国产精品久久久久久久久免费相片 | 91视频一区二区 | 九九久久这里只有精品 | 日韩1区| 天天狠狠 | 日产精品久久久一区二区福利 | 日韩一区在线播放 | 亚洲精品视频在线看 | 国产精品伦一区二区三级视频 | 欧美在线一区二区三区 | 日韩成人免费视频 | 亚洲精品二区 | 成人动漫一区二区 | 综合久久综合久久 | 国产电影精品久久 | 久久久影院 |