零基础如何自学使用MySQL数据库?

如题所述

对于非计算机出身的我,大学只会hello word和跑马灯,期间过程确实非常曲折,分享下我的自学过程:

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的,所以面试的时候一定要自信,其实你学了这么多,虽然毫无实战经验,理论知识很大概率比面试你的人牛逼,所以各种吹,我就这样真正进入初级dba的圈子(由于这时对linux还处于cd ls的水平,所以之前也根本没做过运维),这个边工作边找工作的过程又持续了2个月。

4、真正进入互联网,接触生产环境后,这是我进步最大的时候。 第一步需要将之前所学真正地应用起来,并且应用的过程中,再回头看之前的书籍,这时候需要真正去理解,而不是似是而非,一知半解。 这时再推荐《高性能mysql 第三版》,全本再看一遍,这时需要全部看懂,另外还有《mysql技术内幕:innodb存储引擎》等等。 总之这段时间就需要开始关注mysql一些细节了,比如db故障处理,高可用,负载均衡等等的具体实现了。 另外,linux的知识同步也要深入去学习,至少会写shell脚本,常见的linux知识等,我在这花了1年多; 

5、 dba的工作一般是非常轻闲的,毕竟不是大公司,技术能力有限,该学的也学得差不多了,接触不到海量数据,高并发等比较锻炼人的场合,于是我又准备跳了。 于是来了公有云,现在每天运维万多个db实例,平均每天处理5+个紧急db故障,几乎mysql会遇到的问题,感觉都遇到了,能感觉到技术实力和经验也在每天都在积累,在进步。 但是感觉还是欠缺了很多,下一步就看你选择了,是再去研究源代码,底层原理的东西多点,还是数据库运维和应用多一点,就比如业界姜承尧,何登成与叶金荣的区别。 由于我的历史原因,对c++等几乎不懂,平时也用不到,所以看代码等事实际太累,于是我再去学mongodb,接了公司mongodb运维的活,算是在广度上的一个扩展,万一哪天mysql不行了呢

6、 总之,对于db小白来说,最重要的一点就是,学习的过程不能断。 PS 上面的方法比较野路子,适合没什么基础的童鞋,如果本来就是DBA,比如从oracle转到mysql,那么建议直接看mysql官方文档,而官方文档是db达到一定水平后必看,出问题时必查的权威文档。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-25

首先你要明白一点,一般来说,关系型数据库有三个方面的东西

1,是数据库管理,这是DBA,负责安装,调试,调优,集群等

2,是数据库使用,这是编程,包括SQL语句,触发器,存储过程等

3,是数据库设计,设计数据库表和其他实体

三者互相影响,互相包含,你所谓的对数据库感兴趣,到底是哪个方面?

DBA的部分,虽然目前是有一些商用项目使用mysql,或者mysql集群,但是看你的学历和经历,并不推荐你当一个mysql DBA,就业面市场太小,如果励志当一个DBA,建议你从MSSQL server或者oracle开始。

数据库的设计,肯定绕不开两点,一个是领域知识,比如我做金融的,你要是不懂银行运作,保险公司日常,你肯定是设计不出数据库结构的,另一个是数据库原理,这个是共同的,了解如何使用范式计算数据库实体关系,数据库是否好,是有可量化的标准的,那就是范式,这和学历差不多,符合高范式的不一定很好,但是低范式基本上都不好,虽然不排除有些特例。

所以你最可能在眼前的就是数据库使用,这个里面,我建议你在学会安装以后,只看两个,SQL和触发器,而且时间分配为70%-30%,为什么不建议看存储过程,理由和DBA一样,使用场景不多,效费比不高。所以你应该很清楚,这样抽丝剥茧以后,你主要花费精力的就是SQL使用。

那么SQL如何学习?

知乎学生气重,学习总是要求介绍书,我仍然反对这个概念,不过我尊重你们的学习方法。SQL入门有一本常常提起的书《SQL in 10minutes》这本可以看看。常年amazon销量前列。或者动物社的,learning SQL,也是很好的。网站的话,W3school总是我的首要推荐。我个人偏爱辞书式教程,当然有些人喜欢精灵式教程,那样你会需要自己找。W3的好处是一直一共online测试,你可以以结果为导向进行学习。如果你在W3online测试,凭真实实力过关,那么你的基础就准备好了。

这只是第一步,等于是你掌握了所有工具的使用,接下去你需要在实际操作中累积经验,因为任何非实际项目你无法真实碰触到实际数据库结构,学习用的都非常简单,不会遇到复杂情况,而SQL使用的水平之一即是写出高效的SQL。条条大路通罗马,在SQL更是如此,有时候你需要用很多union才能解决问题,别人一个select就能解决,这主要就是经验。这一块是无法通过教与学了解的,没办法告诉你,这个情况用这个,那个情况用那个,只有在真实战场拼杀,才会切身体会到。

第2个回答  2017-12-25

我就说一下我的零基础入门过程,各位大神轻喷。 第一本书是《SQL必知必会》,很薄很精简的一本书,不知道为什么没人推荐啊。通过这本书了解一些mysql的语法和一些基本的知识。通过真真实实的写一些查询语句操作一些表使自己保持对mysql的兴趣。 第二本书是《高性能mysql》现在应该出到第三版了,第一遍有很多地方看不懂没关系,这种经典多翻几遍很有必要,了解mysql的细节,优化等等。 最后一本书如高赞答案那样,看技术内幕,这个我现在也没看。 总体而言我觉得零基础就是从简到难(一上来就读高性能mysql或者生硬的教科书,结果就是mysql从入门到放弃),其次时刻保持兴趣,然后再找一份mysql相关的实习或工作,最后是多与别人交流,多看看大牛的技术博客。

实践过程中直接上SQL会一头雾水,这是在干嘛,走得会比较坚信,所以先从前台开始,先学习access实例应用,做到对数据库有个大体的了解;再去学习SQL你就能轻易的明白语句这样写的意义,学习起来轻松愉悦!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网