《高性能MySQL》第四版公布后,收到了很多读者的反馈,其中关注最多的是作为一个初学者,应该如何可能较为零碎的学习MySQL,从而应答日常工作或者取得更好的职业倒退。于是和多个业内敌人探讨后,整顿了一些MySQL学习的举荐资源,供初学者参考。

本文分成几局部,包含业界专家的教训、举荐书籍、视频/音频资源、其余资源或者学习形式、MySQL学习沟通群、抽奖赠书等。

业界专家的教训

发问:刚刚入行时,有哪些材料给你了帮忙?

正式接触 MySQL 是2011年底,过后的公司的数据库版本次要是 5.5 版本和大量 5.1 版本。因为之前学Oracle的教训是查看官网文档,学习MySQL 材料次要是 “官网文档” 和过后的淘宝DBA团队组织的技术大学的技术分享,学习MySQL技术的技术个性和经典案例。

其实就当初而言,MySQL 官网文档仍然是最好的学习材料和教材, 外面十分具体的阐明 MySQL的基础架构,redo,undo,读写逻辑,字段类型,锁,存储引擎,主从复制,MGR ,性能优化等等。把官网文档通读一遍,基本上能超过60-70%左右的DBA,为什么不是更高呢?因为学习技术是为了应用技能。

发问:进一步理解 MySQL/数据库,哪些材料给了你帮忙?

换个答复的形式,哪些因素帮忙我晋升数据库技能程度?总结起来大略三个方面:

  1. 把握基础知识之后,会有 “纸上来得终觉浅,绝知此事要躬行”” 的想法。基于对各种MySQL 技术知识点和 性能个性的了解,搭建单节点,主备模式环境 做各种功能测试,并且将知识点的验证或者剖析过程下来写博客,比方死锁,能将常见的20个死锁常见剖析过程总结下来,置信死锁问题再也难不倒你了。
  2. 如果是第一条是模拟考,那么实在的业务场景则是实战演练,在海量的业务场景下,层出不穷的业务问题和技术难点驱动 DBA 对 数据库的应用和限度理解的更多。比方:
  • truncat表 如何复原?
  • 如果有500g binlog,如何减速 binlog 利用?
  • 如何删除3T的大表?
  • 秒杀场景下数据库设计和优化?
  • 如何排查业务拜访db RT异样?
  • 为什么业务写完立刻查问过后查不到?
  1. 和优良的共事或者优良的人同行,比方有解决不了的纳闷能够征询内核开发。

发问:当初回头来看,哪些材料你感觉是最举荐的,别离对于初退学,和深刻学习的人来说?

对于初学者而言,首要指标是 夯实根底,学好根底/理论知识。

  1. 官网文档
  2. 《高性能MySQL》
  3. 《MySQL性能调优与架构设计》
  4. 《MySQL技术底细:InnoDB存储引擎》

对于深刻学习的人来说, 独自的数据库学习是没有意义的,必须服务好具体的业务场景能力施展其价值。举荐:

  1. 《数据密集型利用零碎设计》
  2. 《性能之巅》
  3. 《漫画算法》

学习和总结各种业务场景下的数据库架构设计 ,数据库高可用,容灾,强红包,秒杀,直播弹幕等等。

对于初学者,倡议本人手动装置常见的架构,比方最简略的一主一备,作为验证环境。找一些操作案例较多的博客或公众号文章,照着作者的思路执行。

而后再本人设计一些执行案例,先本人推导后果,再执行验证,在验证过程中加深了解或者勘误。

内核学习也能够延用这个办法,在验证过程中构想如果是本人实现这个性能的,会怎么写,而后通过浏览源码了解作者的设计思路。就是看源码要带着问题去看,找只有次要流程,GDB去调试单步执行。

举荐的重要学习材料包含:

  • MySQL 官网文档
  • 《MySQL 技术底细:InnoDB 存储引擎》
  • MySQL 周边组件的文档与源码,如percona toolkit、MHA等
  • 初学者:丁奇 45 讲、MySQL 官网文档

深刻学习:次要还是积攒、排错,云数据库相干还是须要看下技术相干的论文。

举荐书籍与资源

MySQL作为以后最风行的关系型数据库,相干的书籍也十分多,这里列举根本举荐如下:

文档是最全面和权威的参考,而其余三本都是,依据豆瓣网友打分进行举荐的。第一本《MySQL是怎么运行的》实用于齐全的初学者,内容由浅到深。第二本《高性能MySQL》则从“优化”为入口,十分零碎介绍了MySQL的架构、优化,是一本十分好的进阶书籍。第三本是《MySQL技术底细 InnoDB存储引擎》,这本书深刻的介绍了MySQL外围组件InnoDB存储引擎,涵盖了数据库的事务原理、调度、物理存储、锁等常识。

另外,其实MySQL畛域还有很多书籍并重各有不同,这里不一一举荐了。

1、《MySQL是怎么运行的》

这本书于2020年出版,是一本比拟新的书籍,整个书籍也是围绕其题目开展《MySQL是怎么运行的:从根儿上了解 MySQL》。这本书最大的特点是,全书有十分清晰的脉络,能够说是由“入门到精通”,书中放弃了肯定的完整性(这个能够去看MySQL文档),而是十分接地气的从零开始,用了很多形象的比喻介绍MySQL数据库的各个概念。

同时,该书籍在每个章节对相干的概念也都进入了十分深刻的探讨,例如,对于索引的介绍,从什么事索引、索引的物理构造开始介绍,而后,开始介绍MySQL的索引在查问、排序等场景的应用,最初,再介绍一些常见的索引优化技巧,包含一般索引、前缀索引、笼罩索引等。

总得来说,这本书是最近几年,面向于初学者十分不错的一本书。

2、《高性能MySQL》

《高性能MySQL》则从“优化”为入口,将MySQL相干的知识点聚合在一起,包含了查问性能优化(SQL优化)、高性能索引、库表构造(Schema)优化等,也包含了服务器配置(硬件和软件)优化、架构优化(包含了复制、只读节点、分片)等,还介绍了局部云服务商的MySQL等内容,是一本非常适合进阶浏览的书籍。

该书籍的作者、译者,也都是始终沉闷在数据库畛域第一线的数据库开发者,对于MySQL实际有着十分丰盛教训。这也保障概书籍整体品质不错,不仅能够作为零碎的浏览应用,也能够作为一个参考手册,能够依据本人工作须要,不定期的翻阅其中的局部章节。

3、《MySQL技术底细 InnoDB存储引擎》

这本书则以InnoDB为切入点,十分深刻的介绍了InnoDB或者说数据库的原理。InnoDB能够说是MySQL最为外围的组件,其原理不仅仅实用于MySQL,也简直实用于大多数关系型数据库系统。

具体的,概书籍笼罩的内容包含了MySQL/InnoDB物理存储构造、索引、锁、事务等等。本书底层原理为出发点,帮忙开发者了解MySQL行为、特点。

本书非常适合,对MySQL曾经有肯定水平理解,又心愿更加深刻理解其底层实现原理的人,或者是工作中须要对MySQL源码层进行批改或者定制的数据库内核开发者。

4、用好MySQL官网文档

MySQL官网文档能够说是最为权威、更新最为及时、品质也应该是最高的MySQL学习材料了。在晚期,市面上还没有那么书籍的时候,我集体也是通过精读MySQL官网文档,以此为深刻学习MySQL、甚至是深刻学习数据库原理的知识库。

然而,官网文档为了保障完整性、准确性,会导致其看起来十分简短、繁琐,有时候则感觉是在隔靴挠痒,偏差于介绍实现形式或原理以及MySQL提供的性能,而不会介绍读者最须要的最佳实际。例如,官网文档会具体介绍每个字段类型和参数详情,然而不会通知你,哪些字段类型应该多用,哪些字段类型应该少用。

理解了官网文档的这些个性之后,官网文档浏览的几个要点总结如下:

  1. 在浏览MySQL官网文档之前,须要先花些工夫理解文档的整体架构,不便后续浏览查阅;
  2. 在须要理解某个具体MySQL知识点时,倡议能够精读MySQL文档;
  3. 如果心愿零碎的理解某个MySQL特效的时候,能够残缺的浏览;
  4. MySQL文档MySQL官网文档最新的都是英文的,须要有肯定的英文浏览能力。

总得来说,多浏览官网文档,尽管刚开始会感觉有些艰涩,保持下来,你会发现播种微小。

另外,浏览官网文档也要留神:也正是因为官网文档重视保障完整性、准确性,所以必定会繁琐、简短,而不怎么介绍最佳实践经验,甚至一些支流的利用等,例如官网文档也只会将内容限定在MySQL自身,而不会包含硬件、软件或者云环境的相干的内容。

5、视频/音频资源

当初也越来越多的人通过视频的形式去在线的学习各类常识,B站上也有一些面相MySQL初学者的视频资源,品质我不太好评估,不过作为文字、书籍的补充学习,看一些视频学习还是十分不错的。大家能够去B站搜寻一下“MySQL 初学者”就有很多的相干视频了,品质参差不齐,须要大家本人甄别适宜本人的。这里仅举荐一下由极客工夫推出的《MySQL实战45讲》。

该系列价格也十分便宜,能够说是买不了吃亏、买不了受骗,反倒是容易买到本人不能全副看完/听完的烦恼:《MySQL实战45讲》。

其余资源或者学习形式

1、应用Google/Baidu或者ChatGPT

通常,对于某个十分具体的知识点或者行业/场景最佳实际,在文档中都不会笼罩,然而,因为MySQL的用户量极大,在互联网上也有十分多的分享和探讨,从初阶到高阶,面相各个级别的内容都有,能够说是一个大宝库,用好了也是能够事倍功半的。

2、多总结、多分享、多交换

学习自身通常都是无趣的,如果学习的常识不可能很快的在理论工作中应用,也很容易遗记。另一个十分好的学习办法,不仅仅限于学习MySQL,就是分享很总结。一方面,能够让你零碎的把一个知识点理解的比拟残缺和透彻,也能够帮你更好的记录,大大加深了解与记忆。

3、学以致用

兴许你学习MySQL的起因可能只是因为面试、解决一个工作中的问题、增长常识或者只是趣味,无论是哪个起因促使你学习,入手练习并在工作中应用这些常识,都是十分无效的。如果,你对MySQL或者数据库很有趣味,那么则倡议在以后的公司,找一个与数据库更近的岗位工作,这样天然能够事倍功半。

4、MySQL源代码

MySQL是一个开源数据库,另一个独天得厚的资源是MySQL源代码。不过,MySQL倒退的工夫曾经十分长了,其代码复杂度也比拟高,能够思考从一两个小的模块、小的性能点着手,去学习、验证。

5、学术论文

当如果须要理解某个具体模块的前因后果以及设计思维的时候,有时候去查找一些经典的数据库畛域论文能够很好的帮忙你解决相干的疑难。有一套大部头《Readings in Database Systems》能够作为参考或者开始,不过内容较多,须要破费大量工夫,总得来说不太适宜初学者。

小结

对于不同根底的人,学习的重点和办法是各有不同的,所以本文会列举次要的MySQL数据库的学习资源和办法,读者须要联合本人的理论状况抉择适合的办法。如果你有好的教训分享,能够在留言评论谈谈你的教训。

orczhou 是《高性能MySQL》的书籍的译者,同时也是来自 NineData(www.ninedata.cloud)的工程师。NineData向企业、开发者提供高效、平安的数据库 SQL 开发、数据库备份、数据复制/迁徙/集成、数据比照等性能,是一个 SaaS 服务开箱即用,能够疾速晋升企业 SQL 开发效率,保障企业数据安全。


感激点赞、转发一下,你们的反对会激励咱们继续输入更多高质量的技术文章!欢送关注咱们的公众号「云数据库技术」, 能够参加抽取10本MySQL书籍,晋升数据库技能,让每个人用好数据和云。