社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

炸裂!MySQL主从原理,一次性搞定 (送书)

开源最前线 • 3 年前 • 302 次点击  

查看文章尾部参与赠书活动


根据经验,想要快速学习一门技术有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主从复制技术。

(点击了解本书详情)


包邮送书

抽 位幸运粉丝,

包邮送《深入理解MySQL主从原理》

活动截止时间:2021年04月08日 10:00


▼ 点击【阅读原文】参与抽奖活动
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/110867
 
302 次点击