做者:姜健
连接:https://www.zhihu.com/question/34840297/answer/67536521
来源:知乎
著做权归做者全部,转载请联系做者得到受权。
本人是个活生生的例子,大学学的仪器仪表专业,12年毕业后第一份工做是电路板测试。因为项目中接触到了数据库的东西,纯粹当高级点的excel表格用的。
当时有点兴趣,没参加过培训,0基础自学mysql和linux,现任国内某公有云mysql &&mongodb dba。
对于非计算机出身的我,大学只会hello word和跑马灯,期间过程确实很是曲折,分享下个人自学过程:
一、 本身在windows和linux上安装了mysql,自学linux的基础知识,学习mysql的最基础的知识,即
怎么写sql,存储过程,表的设计等,从0到熟悉大概花了3个月 ,推荐
《mysql入门很简单》。
二、系统地较为深刻地学习
mysql的sql优化,备份和恢复,参数优化,架构优化,硬件层面的优化,高可用方案,复制技术等等,这段时间你不必定能实际接触到这些,就像我当初那样,确定没什么公司招一个小白。
我选择本身看书,推荐
《高性能mysql》,里面全部的章节都须要看一遍,以如今的水平确定看不懂,但须要知道大概怎么回事,为后续的找mysql初级dba的工做打一个铺垫,这个过程大概也须要3个月。
三、 纸上得来终觉浅,完成以上两步,我开始准备
找一份mysql相关的工做,而不是每天用着excel表格作着select * from table_sb这样的工做。
固然我这么猥琐的人确定不会裸辞,该画的电路板也同样画,业余时间开始投初级mysql dba的工做,而且不间断地学习,网上各类找mysql面试的相关题目(实际上我当时彻底没有任何实战经验),陆续收到一些面试,凭借以前自学的mysql知识,开始胡乱吹牛逼,先混进去再说。
你不作mysql实际相关的工做,永远也不知道本身以前认知的db知识有多幼稚。
友情提示一点,通常公司都没有专职dba的,因此面试的时候必定要自信,其实你学了这么多,虽然毫无实战经验,理论知识很大几率比面试你的人牛逼,因此各类吹,我就这样真正进入初级dba的圈子(因为这时对linux还处于cd ls的水平,因此以前也根本没作过运维),这个边工做边找工做的过程又持续了2个月。
四、真正进入互联网,接触生产环境后,这是我进步最大的时候。
第一步须要
将以前所学真正地应用起来,而且应用的过程当中,再回头看以前的书籍,这时候须要真正去理解,而不是似是而非,只知其一;不知其二。
这时再推荐
《高性能mysql 第三版》,全本再看一遍,这时须要所有看懂,另外还有
《mysql技术内幕:innodb存储引擎》等等。
总之这段时间就须要
开始关注mysql一些细节了,好比
db故障处理,高可用,负载均衡等等的具体实现了。
另外,
linux的知识同步也要深刻去学习,至少会写shell脚本,常见的linux知识等,我在这花了1年多;
五、 dba的工做通常是很是轻闲的,毕竟不是大公司,技术能力有限,该学的也学得差很少了,接触不到
海量数据,高并发等比较锻炼人的场合,因而我又准备跳了。
因而来了公有云,如今天天运维万多个db实例,平均天天处理5+个紧急db故障,几乎mysql会遇到的问题,感受都遇到了,能感受到技术实力和经验也在天天都在积累,在进步。
可是感受仍是欠缺了不少,
下一步就看你选择了,是再去研究源代码,底层原理的东西多点,仍是数据库运维和应用多一点,就好比业界姜承尧,何登成与叶金荣的区别。
因为个人历史缘由,对c++等几乎不懂,平时也用不到,因此看代码等事实际太累,因而我再去学mongodb,接了公司mongodb运维的活,算是在广度上的一个扩展,万一哪天mysql不行了呢
六、 总之,对于db小白来讲,最重要的一点就是,
学习的过程不能断。
PS 上面的方法比较野路子,适合没什么基础的童鞋,若是原本就是DBA,好比从oracle转到mysql,那么建议直接看mysql官方文档,而官方文档是db达到必定水平后必看,出问题时必查的权威文档。
文章源自知乎,仅供学习参考