您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 数据库 > 正文

小白学MySQL要多久?我整理了10多个问题的答案

发表于:2019-10-08 作者:杨建荣 来源:杨建荣的学习笔记

小白学MySQL要多久?我整理了10多个问题的答案


这是一个偶然碰到的问题,想想蛮有意思,就准备写一篇文章做下分析。

首先啰嗦下学习MySQL的一些背景:MySQL作为目前最为活跃热门的开源数据库之一,以低成本和简易操作的组合方案在互联网企业中被广泛采用而大放异彩。在炙手可热的BAT中,MySQL正被大量使用。显然,对于想在互联网行业大展手脚的数据库工程师和DBA们,熟练的MySQL技术无疑是一块很好的敲门砖。

而在云时代,运维的理念发生了很大改变,随着数据库自动化运维智能运维的兴起,也促使DBA要站在更高层面来看待数据库,看待运维,看待IT,否则就会成为被机器人替代的炮灰。

首先我们所理解的小白和实际情况的是不大一样的,每个人的情况不同,目前我碰到较多的情况,一般以小白自称的人基本有以下三类:

  • 求职储备(无工作经验)

没有相关经验,还没有走上工作岗位,只是对于MySQL感兴趣或者好奇。

  • DBA萌新(较少工作经验)

刚入行的新手,或者有少量经验的DBA新人,经常会发现工作中的和书上说的不一样

  • 工作中会用到(有工作经验)

可能是研发类的同学,有一定工作经验,工作中要用到MySQL技术,只是简单用,想深入学习一下

所以针对不同的人群,回答也不尽相同,对此我做了梳理,我觉得可以把这个问题转换为另外一个问题:

学习MySQL要学些什么,需要注意些什么?

整体来说我会用如下的方式来阐述常见问题

  • MySQL学习周期和难度应该怎么理解?
  • MySQL知识体系是什么,应该包括哪些知识层面?
  • MySQL推荐的书和资料有哪些?

然后其余的部分会分为不同的人群来进行阐述。

1)求职储备类常见问题

  • MySQL的认证考试值得考吗?含金量有多大?
  • 从事DBA岗位,选MySQL还是Oracle?

2)DBA萌新类常见问题

  • 从事DBA岗位,选MySQL还是Oracle?
  • MySQL DBA高工资的原因
  • DBA工程师模型应该是什么样的?

3)有工作经验类常见问题

  • 个人职业发展如何完成向MySQL的转型?

小白通用类问题

问题1:MySQL学习周期和难度应该怎么理解

通常对于学习周期和难度,大家是很关心的,但是我们很难去量化一个度,所以我们可以参考比较成熟的商业数据库作为参考,来对比MySQL学习的一些特点。


从技术栈上来说,MySQL的入门周期相对要短,学习难度要更容易,但是要深入发,因为开源和社区的原因,发展空间则更大。当然除这个维度之外,MySQL DBA的“钱途”从市面需求来说也要好一些。

问题2:MySQL知识体系是什么,应该包括哪些知识层面?

从我的理解中,我把MySQL技术分为了三个层面,运维管理,架构优化和运维开发

运维管理主要就是基础运维的工作(安装部署,备份恢复,权限管理之类的工作)和一些变更类管理和规范操作(在线变更,数据库复制,SQL规范等工作),这部分工作上手较快

架构和优化设计的工作面比较宽,而且技术要求有一定的深度,我把它分为SQL查询优化,事务和锁,MySQL集群和高可用技术,分布式数据库架构等。这部分工作中对于很多开发同学而言更关注查询优化,而对于DBA从初级走向中高级,则需要关注,相关的锁机制,和集群,高可用相关技术。

运维开发的工作不是简单的数据库自动化运维,而是分为应用层和内核层,我们常说的运维开发是偏向于应用层的,比如数据库管理工具等,而内核层,比如开发数据库中间件,SQL审核工具等,需要掌握源码开发能力。

我的新书里面整理了几个脑图,可以作为参考。


其实不管如何改变,MySQL 在人这一块的一种核心竞争力依旧不变,那就是优化能力。这个优化范畴不单指原来的硬件选型等层面的优化,更多的过渡到了架构设计优化和应用层面的优化。优化能力是DBA职业生涯中的持久生命力,是重新审视自我、提升自我的一个必备武器,优化能力不是短期能够学成的,而是更多和个人的学习能力和实践情况紧密结合起来的,简单来说,和你解决问题的数量呈一定的线性关系。

问题3:MySQL推荐的书和资料有哪些?

简单来说,官方文档是最好的学习资料,在这个基础上去阅读更多的书籍会起到融会贯通的作用。如果推荐书籍,我有下面的一个读书清单可供参考。

入门:

《MySQL数据库应用从入门到精通(第2版)》

《MySQL核心技术手册》

《MySQL技术内幕(第5版)》

运维实践:

《高性能MySQL》 经典必读

《MySQL管理之道:性能调优、高可用与监控(第2版) 》贺春旸

《深入理解MySQL核心技术》帕奇维

《MySQL运维内参》 周彦伟、王竹峰、强昌金

《深入浅出MySQL》网易团队出品

《MySQL DBA工作笔记》杨建荣

内核:

《MySQL技术内幕:InnoDB存储引擎(第2版)》姜承尧

《InnoDB - A journey to the core》Jeremy Cole

一.求职储备类常见问题

问题1:MySQL 的认证考试值得考吗?含金量有多大?

MySQL的认证目前只有MySQL OCP,目前和Oracle OCP相比,资料和套路都会少一些。考这个认证,你得明白几件事情:

认证里的内容和工作的内容还是有一些差别的,在MySQL里面尤其如此,因为开源的方案非常多,很多优秀的工具不仅仅是官方的;

考过了认证不一定代表了你是一个数据库专家,因为实践出真知,很多技能都是在工作中培养和锻炼出来的,考试有分数控制,达标即合格,而工作中99%的努力加1%的错误那就是失败;

考取认证不能指望企业给你升职加薪,如果有的话,那么恭喜你;

学习的过程相比考试结果来说,对自己的启示意义更大,因为拿到认证是对你学习过程的肯定;

最后一点MySQL OCP报名费相比Oracle OCP低不少,价格还算亲民。

问题2:从事DBA岗位,选MySQL还是Oracle?

有句话说,选择的利剑属于在于能够挥舞它的人,根据工作需要,自己的喜好去选择就可以,如果只是本着钱途是不推荐的。如果非要纠结到底是哪一个,其实也可以换个角度,如果两个都学,是不是这个问题就不是问题了。

二.DBA萌新类常见问题

  • 从事DBA岗位,选MySQL还是Oracle?
  • MySQL DBA高工资的原因
  • DBA工程师模型应该是什么样的?

问题1:MySQL DBA高工资的原因

因为是和Oracle来对比,可以分为几个方面来看:

  • 首先物以稀为贵,MySQL DBA相对Oracle DBA来说要少一些,随着现在互联网行业的发展,这个需求还是会持续增长;
  • 第二还是物以稀为贵,任何工种,高级职位都是稀缺的,如果你能够成为行业内的20%的人,无论你是从事哪种数据库,都会混得还不错。
  • 第三还是物以稀为贵,什么事物的发展都有一个成熟度曲线,水涨船高之后,留在你手里的是真技能还是花拳绣腿,数据库的功能会越来越丰富,你的技能也要升级,不升级的话,用哪个数据库你都会很吃力。

问题2:DBA工程师模型应该是什么样的?

我眼中的工程师模型是这样的,简单三个特征:鹰眼(眼光犀利),狮心(内心强大),绣花手(做事认真细致)。


三.有工作经验类常见问题

问题1:个人职业发展如何完成向MySQL的转型?

从自身目前从事的工作,分三种情况来看:

(1)目前从事的工作以商业数据库Oracle为主,又想转型为MySQL DBA的:

自搭环境学习实践是一个起步,如果觉得没有明确的学习目标,考个MySQL OCP也是一种阶段性的学习成果验收,总比漫无目的的学习收获要大。已经有了Oracle基础,可以通过对比的方式来引入到MySQL的学习中。公司如果后期引入MySQL方案,你就是最佳人选了。

(2)目前工作中有MySQL环境的:

在做好本职工作的前提下,可以自荐,让别人推荐来做MySQL DBA的工作。对企业和你个人都是双赢,所以开发测试运维同学想做MySQL DBA也是可以的。

(3)现有的MySQL工作和自身期望相比差距较大的:

一种方式是自查,我们在当前的环境还能够做出些什么,如果能够把当前的环境做到精细化的管理,总会有非常多的事情和收获,还有一种方式就是跳槽,这个的前提也是你在储备了很多的技能之后,因为机会是留给有准备的人。