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

加速 MySQL 主從同步,核心架構設計思路!

開發(fā) 架構 MySQL
MySQL并行復制、縮短主從同步時延的核心架構思路無非兩點:單線程回放,升級為多線程并發(fā)回放和確保并發(fā)回放冪等性。

MySQL主從同步為什么這么慢?

如上所示,主庫binlog同步到從庫,從庫單線程落盤relaylog,單線程重放relaylog,在數(shù)據(jù)量大并發(fā)量大的時候,就會很慢。

如何來進行優(yōu)化?

可以多線程并行重放relaylog來縮短同步時間。

多線程并行重放能否保證與主庫數(shù)據(jù)的一致性?

例如:三個set語句,分在三個線程重放,不能保障與主庫執(zhí)行序列的一致性。

update X set money=100 where uid=58;
update X set money=150 where uid=58;
update X set money=200 where uid=58;

隨機分配肯定不行,但可以按庫來分配:

  • 同一個MySQL實例中的同一個DB庫,由一個線程來重放;
  • 不同的DB庫,由不同的線程來并行重放;

以此來夠縮短同步時間。

為什么很多公司還是同步很慢呢?

這個鍋DBA不背。

大概是架構師在數(shù)據(jù)庫架構設計時,MySQL使用了單庫多表模式,升級為多庫多表模式即可。

畫外音:單庫多表模式,還是一個線程重放。

數(shù)據(jù)庫架構,多庫多表模式有什么好處?

  • 主從同步快;
  • 邏輯上還能按照業(yè)務子業(yè)務進行庫隔離;
  • 擴容方便,性能出現(xiàn)瓶頸時,加實例就能拆庫擴容;

架構師說拆不開怎么辦?

要么是架構師不懂,要么是把業(yè)務實現(xiàn)在SQL語句里了,導致拆不開。

如果已經(jīng)是單庫多表模式,庫無法拆分開,還有其它方法縮短主從同步時間嗎?

可以進一步優(yōu)化:將主庫上同時并行執(zhí)行的事務,分為一組,編一個號,這些事務在從庫上的回放也可以并行執(zhí)行。

畫外音:事務在主庫上的執(zhí)行同時進入到prepare階段,說明事務之間沒有沖突,否則就不可能提交。

簡言之:同一組提交的事務,沒有鎖沖突,可以并行重放。

MySQL將組提交的信息存放在GTID中,使用mysqlbinlog工具,可以看到組提交內(nèi)部的內(nèi)部信息:

14:15 XXX GTID last_committed=0 sequence_numer=1
14:15 XXX GTID last_committed=0 sequence_numer=2
14:15 XXX GTID last_committed=0 sequence_numer=3
14:15 XXX GTID last_committed=0 sequence_numer=4

如果具備相同的last_committed,說明它們在一個組內(nèi),可以并發(fā)回放執(zhí)行。

總結(jié)

mysql并行復制,縮短主從同步時延的核心架構思路無非兩點:

  • 單線程回放,升級為多線程并發(fā)回放;
  • 確保并發(fā)回放冪等性:“按照庫冪等”,“按照組冪等”是兩種不同顆粒度的實現(xiàn)方式;

更具體的:

  • mysql5.5 -> 不支持并行復制,趕緊升級mysql;
  • mysql5.6 -> 支持按照庫并行復制,趕緊升級“多庫”架構;
  • mysql5.7 -> 支持按照GTID并行復制;

知其然,知其所以然。

思路比結(jié)論更重要。

責任編輯:趙寧寧 來源: 架構師之路
相關推薦

2016-02-18 10:09:23

12306核心思路架構

2024-02-26 00:00:00

Nginx服務器HTTP

2022-04-20 10:15:56

SaaS模塊化客戶

2010-07-14 09:01:07

架構設計

2023-08-16 12:34:16

同步備份異步備份

2022-08-18 08:24:19

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

2016-03-25 09:57:09

統(tǒng)一監(jiān)控報警平臺運維

2020-08-06 08:16:26

Kubernetes架構開源

2020-08-06 08:26:22

Kubernetes架構開發(fā)

2017-09-12 08:03:29

數(shù)據(jù)庫MySQL主庫

2021-10-09 09:52:49

MYSQL開發(fā)數(shù)據(jù)庫

2019-05-21 21:15:32

架構架構設計性能優(yōu)化

2018-08-13 09:09:35

Nginx服務器內(nèi)部

2013-05-27 10:58:28

Tumblr架構設計雅虎收購

2017-04-24 11:01:59

MySQL數(shù)據(jù)庫架構設計

2018-01-18 11:59:59

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

2021-10-12 09:46:00

Pipelineshell命令Jenkins

2023-07-05 08:00:52

MetrAuto系統(tǒng)架構

2025-05-09 08:45:13

2025-04-15 04:00:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一级精品视频在线观看 | 欧美一区二区三区在线观看 | chinese中国真实乱对白 | 精品国模一区二区三区欧美 | 日韩视频二区 | 精品一区二区视频 | 欧美日韩国产精品一区二区 | av一区二区三区 | 电影午夜精品一区二区三区 | 福利片在线 | 欧美成人一区二区 | 日韩毛片在线视频 | 黑人巨大精品欧美一区二区免费 | 国产精品视频一二三 | 一区二区国产在线观看 | 九九久久国产精品 | 中文字幕亚洲一区 | 一级毛片观看 | 亚洲精品不卡 | 国产中文区二幕区2012 | 欧美精品在线一区 | 中文字幕日韩一区 | 365夜爽爽欧美性午夜免费视频 | 欧美jizzhd精品欧美巨大免费 | www.男人天堂.com| 欧美一级黄 | av在线一区二区三区 | 在线免费观看黄a | 国产欧美日韩一区 | 欧美精品一区二区三区在线 | 亚洲国产精品99久久久久久久久 | 亚洲精品亚洲人成人网 | 欧美日韩视频在线播放 | 99热精品久久 | 韩日一区二区三区 | 午夜国产一级片 | 亚洲人在线播放 | 久久久久久国产精品三区 | 偷拍自拍网站 | av黄色免费 | 欧美一区二区在线观看 |