如何学习数据库,零基础。

1,我在windows和linux上安装了mysql,自学了linux的基础知识,学习了mysql最基础的知识,也就是如何写sql,存储过程,表设计等。从0到熟悉大概用了3个月。推荐mysql容易上手。

2.学习mysql的sql优化、备份恢复、参数优化、架构优化、硬件优化、高可用方案、复制技术等。系统而深入。这段时间你不一定能真正接触到这些,就像我当初一样,肯定没有公司招一个白招。

我选择自己看书,推荐高性能mysql。里面所有的章节都需要看一遍。我现在的水平还看不懂,但是我需要知道是怎么回事,为后续找mysql初级dba的工作做铺垫。这个过程大约需要3个月。

3.完成以上两步后,我开始准备一份与mysql相关的工作,而不是每天用excel表格做select * from table_sb这样的工作。

当然,我这样一个可怜的人是不会去裸辞的,这幅画的电路板也是一样的。业余时间开始做初级mysql dba,一直在学习。在网上陆续收到一些关于mysql面试相关的各种话题的面试(其实我当时也没有什么实战经验)。有了之前自学的mysql知识,就开始胡乱吹牛,于是先混了进去。

不做mysql相关的实际工作,你永远不会知道你之前对db的认识有多幼稚。

友情提醒:大部分公司都没有全职dba,所以你面试的时候一定要自信。linux事实上,你学了这么多,虽然没有实战经验,但你的理论知识大概比你的面试官强。于是,我真正进入了初级dba的圈子(因为这个时候我还处于cd ls的水平,之前没有做过运维),这个边工作边找工作的过程又持续了两个月。

4.真正进入互联网,接触制作环境之后,这是我进步最大的时候。

第一步,真正的把之前学过的东西应用起来,在应用的过程中,需要回头看看之前的书。这个时候,你需要真正了解,而不是似是而非,半生不熟。

这时候推荐高性能mysql第三版,通读一遍全书。这个时候,我们需要全部了解。另外还有mysql技术内幕:innodb存储引擎等等。

总之,我们需要注意mysql的一些细节,比如db故障处理、高可用性、负载均衡等等。

另外,linux的知识同步要深入学习,至少我会写shell脚本和常用的linux知识。我在这里度过了1多年;

5.dba的工作一般都很悠闲。毕竟不是大公司,技术能力有限。了解了一下,没有接触到海量数据和高并发,准备再跳一次。

于是出现了公有云,现在每天运营维护超过10000个db实例,平均每天处理5+次紧急db故障。mysql会遇到的问题几乎都感受到了,能感觉到技术实力和经验也在每天积累和提升。

但我还是觉得少了很多。接下来就看你的选择了,是多研究源代码和底层原理,还是多研究数据库操作和应用,比如业内的蒋承耀、何登成和叶的区别。

因为我的历史原因,几乎不懂c++,平时也不用,所以看代码之类的东西其实太累了,所以我又去学了mongodb,承担了公司mongodb的运维,算是广度上的拓展。如果有一天mysql失败了怎么办?

6.简而言之,对db小白来说,最重要的是学习过程不能中断。

PS上面的方法比较野,适合基础不太好的童鞋。如果你是dbA,比如从oracle转到mysql,那么建议直接看mysql官方文档,这是DB达到一定水平后必须看的权威文档,出了问题必须检查。