中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL - 主從同步延遲

發布時間:2020-04-09 18:19:43 來源:網絡 閱讀:1051 作者:Ohimma 欄目:數據庫

1. MySQL數據庫主從同步延遲原理?

2. MySQL數據庫主從同步延遲是怎么產生的?

3. MySQL數據庫主從同步延遲解決方案?

---------------------------------------------------------------------------------------------------

1. MySQL數據庫主從同步延遲原理

答:談到MySQL數據庫主從同步延遲原理,得從mysql的數據庫主從復制原理說起,mysql的主從復制都是單線程的操作,主庫對所有DDL(數據庫定義語言)和DML(數據庫操作語言)產生binlog,binlog是順序寫,所以效率很高,slave的Slave_IO_Running線程到主庫取日志,效率很比較高,下一步,問題來了,slave的Slave_SQL_Running線程將主庫的DDL和DML操作在slave實施。DML和DDL的IO操作是隨即的,不是順序的,成本高很多,還可能可slave上的其他查詢產生lock爭用,由于Slave_SQL_Running也是單線程的,所以一個DDL卡主了,需要執行10分鐘,那么所有之后的DDL會等待這個DDL執行完才會繼續執行,這就導致了延時。有朋友會問:“主庫上那個相同的DDL也需要執行10分,為什么slave會延時?”,答案是master可以并發,Slave_SQL_Running線程卻不可以。


2. MySQL數據庫主從同步延遲是怎么產生的。

答:當主庫的TPS并發較高時,產生的DDL數量超過slave一個sql線程所能承受的范圍,那么延時就產生了,當然還有就是可能與slave的大型query語句產生了鎖等待。


3. MySQL數據庫主從同步延遲解決方案。

問題一:主庫的從庫太多,導致復制延遲

從庫數據以3-5個為宜,要復制的從節點數量過多,會導致復制延遲

問題二:從庫硬件比主庫差,導致復制延遲

查看Master和Slave的系統配置,可能會因為機器配置不當,包括磁盤I/O、CPU、內存等各方面因素造成復制的延遲。一般發生在高并發大數據量寫入場景中

問題三:慢SQL語句過多

假如一條SQL語句執行時間是20秒,那么從執行完畢到從庫上能查到數據至少需要20秒,這樣就延遲20秒了。

一般要把SQL語句的優化作為常規工作不斷地進行監控和優化,如果單個SQL的寫入時間長,可以修改后分多次寫入。通過查看慢查詢日志或show full processlist命令,找出執行時間長的查詢語句或大的事務

問題四:主從復制的設計問題

例如主從復制單線程,如果主庫寫并發太大,來不及傳送到從庫,就會導致延遲。更高版本的Mysql可以支持多線程復制,門戶網站則會開發自己的多線程同步功能。

問題五:主從庫之間的網絡延遲

主從庫的網卡、網線、交換機等網絡設備都可能成為復制的瓶頸,導致復制延遲。另外,跨公網的主從復制很容易導致主從復制延遲

問題六:主庫讀寫壓力大,導致復制延遲

架構的前端要加buffer及緩存層

門戶網站的解決方案:

優酷的解決方案:數據庫分片技術,而拋棄了由于數據量的越來越多導致復制延遲的問題。按照user_id進行分片,這樣必須有一個全局的表來管理用戶與shard的關系,根據user_id可以得到share_id,然后根據share_id去指定的分片查詢指定的數據


淘寶的解決方案:修改源碼,對應的機制是Transfer機制,此處通過對Binlog日志重做采用多線程實現,從而提高slave的QPS


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠州市| 东光县| 青州市| 永吉县| 北海市| 息烽县| 师宗县| 亚东县| 巨野县| 姜堰市| 阿合奇县| 洛浦县| 新源县| 安乡县| 焦作市| 灵寿县| 双流县| 乾安县| 台北市| 磐安县| 龙川县| 临夏县| 建昌县| 溆浦县| 嘉峪关市| 抚顺市| 巩义市| 衡东县| 万盛区| 珠海市| 从化市| 西林县| 桑植县| 修武县| 衡阳县| 沭阳县| 沧州市| 和硕县| 永川市| 建德市| 桃园市|