MySQL主從原理,基於快速學習一門技術的3種方式

根據經驗,想要快速學習一門技術有3種方式

第一種方式是通過代碼來理解它的實現,反推它的邏輯。

這種方式的難度很大,而且起點相對高,能夠沉浸其中的人非常少,過程相對來說是苦悶的,但如果能夠沉下心來看代碼和調試,達到一定程度後,就會逐漸對這門技術有感覺,進而融會貫通。

第二種方式是通過對比的方式來學習。

比如,在有Oracle基礎的情況下,通過對比Oracle學習MySQL,就會容易很多。越是深入學習,越是能發現兩者之間有很大的差別,進而可以通過不斷對比來完善自己的認知,從差異化中找到學習的重點和方向,也能夠對技術的發展有一個相對理性的認識。

第三種方式算是捷徑,就是去聽聽作者怎麼說,通過他的分享從整體對一個項目有一個基本的認識和了解。

這好比你去拜訪一個朋友,他熱情地把你領進門,帶着你走走客廳,走走臥室,給你介紹房子的裝修風格、裏面的傢俱和電器,爲什麼要這麼設計,很快你就能夠對這一切熟悉起來。這種方式很好,而且最省事,但可遇不可求。

繼續以學習MySQL爲例,因爲其作爲開源數據庫技術的典型代表,有很多值得我們去學習的內容,也有很多值得探索和改進的地方。

有句話說得好:研究的方法,要合之而見其大,必先分之而致其精。

同樣,在學習數據庫及使用的過程中,只有按照這種精深的學習模式沉下心去鑽研和測試,才能夠真正理解數據庫的一些技巧,把它轉化爲自己的經驗。

如果自己通過第一種方式進行學習,可能確實會感到喫力,但所幸高鵬老師的新書《深入理解MySQL主從原理》是結合了第三種方式從源碼的角度進行切入,對MySQL主從原理進行了實打實的分析和解讀,讓你能夠很快對這一切熟悉起來,並於細節之處通過第二種方式進行對比介紹。

在DBAplus社羣發起人楊建榮老師的眼中,優秀的工程師會具備這樣3個特徵:鷹眼(眼光犀利)、獅心(內心強大)、繡花手(做事認真細緻)。這些特徵在高鵬老師身上都能夠看到。高鵬老師在書中的傾囊相授也體現出了他對技術孜孜不倦地追求,對促進和諧技術生態持續發展的熱情。

數據庫技術在當前大環境下非常重要,而MySQL主從複製是很多技術方向的根基和靈魂。

從2017年開始,高鵬老師的公司開始大量上線MySQL5.7基於GTID的主從構架,但是在實際的運維工程中遇到了不少問題和疑惑,也是很多DBA同學淺嘗輒止的地方,比如:

主從延遲爲什麼瞬間跳動?

延遲爲0就一定代表沒有延遲嗎?

從庫能和主庫一樣利用索引嗎?

MTS是如何提高從庫應用效率的?

mysql.gtid_executed表在從庫初始化的時候扮演着什麼樣的角色?

這些問題的答案在文檔中是很難定位和快速理解的,而源碼就好比一個放大鏡,能夠讓我們一窺其中的奧祕和玄機,讓技術細節不再神祕。

此外,從MySQL 5.7.17開始,官方推出了MGR高可用構架,這是未來MySQL高可用構架發展的方向,它和主從有着天然的聯繫。比如,GTID、Event、SQL線程等基本都是通用的,要深入學習MGR就勢必要先深入學習主從原理。

同時,在技術方向上需要不侷限於當前的技術方案。比如,在主從原理方向上就形成了技術的分水嶺。

如今,存儲與計算分離的模式很火。比如,Aurora的技術架構的重大變化就是對主從模式做了魔改,基於一套存儲計算分離架構,將日誌處理下推到分佈式存儲層,通過架構上的優化來解決網絡瓶頸,這其實讓我們也可以辯證地從另外一個角度來看待主從原理:

它的優點是什麼?

它有哪些缺點?

它有哪些適用的場景?

這些都可以通過閱讀《深入理解MySQL主從原理》一書來對比學習,形成自己的技術體系。

當然,通過閱讀源碼去理解原理這件事情,看上去不簡單,實際也不簡單,我們需要有一些基礎概念的理解,需要一些基礎知識的鋪墊。

如果要深入學習主從原理,則需要按照一定的順序進行學習;如果不知道GTID、不知道Event、不知道主庫如何生成Event的,那麼肯定不能深入理解主從原理。因此,本書按照這種順序進行講解。

本書一共分爲5章,前4章應該作爲一個整體順序閱讀,第5章和前面4章沒有關聯,可以獨立閱讀。

第1章:介紹GTID相關的知識點,包含GTID的構成、GTID模塊的初始化、GTID中的運維等知識點。

第2章:介紹binary log中的各種主要Event,各個Event通過作用、格式講解、實際解析等幾個維度進行描述。

第3章:介紹主庫是如何生成Event的,以及DUMP線程是如何通過GTID進行主庫binary log定位,並且進行Event傳輸的。

第4章:介紹從庫是如何應用Event的,並且還包含了推薦的參數設置和Seconds_Behind_Master延遲的相關知識點。

第5章:本章作爲知識拓展,講解線程的初步知識、MDL LOCK、排序等熱門話題,還包含了主從相關的案例。

做技術是一件很樸素的事情,需要有舍有得,而且時常會帶來孤獨感,所幸在技術學習的道路上,有了社區,有了很多技術朋友的支持,剩下的就是熱愛和堅持,可以支撐彼此這樣一路走過來。

期待這本書能夠帶給你全新的閱讀體驗!

▊《深入理解MySQL主從原理》

高鵬 著

  • 數位數據庫專家/ACEDirector/ACE讚譽推薦
  • 凝結數百次故障診斷經驗
  • 從主庫端到從庫端帶你深入解析MySQL主從構架的運行原理

MySQL主從原理是高可用架構的基石,即便是MGR這種集羣架構也可以看到主從的影子。要解決一個問題或者故障,最快的方式就是了解它的原理,快速定位問題。

本書從源碼層面抽絲剝繭般地描述MySQL主從原理,全面地介紹了GTID相關的知識點,並解析了主要Event的生成、作用和格式,以及線程的初步知識、MDL LOCK、排序等熱門話題和主從相關的案例。無論是MySQL DBA和MySQL源碼愛好者,還是剛進入數據庫行業的小白讀者,通過閱讀本書,都能通過源碼級分析,更好地理解和使用MySQL主從複製技術。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章