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

零基础如何自学使用MySQL数据库?,第1张

对于非计算机出身的我,大学只会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达到一定水平后必看,出问题时必查的权威文档。

很多。。。 一般工作站端都是SQL数据库。只有服务器端用的是ORACEL。你要专门从事SQL数据库维护吗? 专职的不多,大部分都要求综合能力,最专点的一般让你写存储过程(用来维护或更新)、数据字段等。还有些是要维护本单位企业应用系统正常运行的。。。 不大好找。市面上很少专职招这方面的人。得在本企业内有个过程才行。

更高的写入负载

默认情况下,MongoDB更侧重高数据写入性能,而非事务安全,MongoDB很适合业务系统中有大量“低价值”数据的场景。但是应当避免在高事务安全性的系统中使用MongoDB,除非能从架构设计上保证事务安全。

高可用性

MongoDB的复副集(Master-Slave)配置非常简洁方便,此外,MongoDB可以快速响应的处理单节点故障,自动、安全的完成故障转移。这些特性使得MongoDB能在一个相对不稳定(如云主机)的环境中,保持高可用性。

数据量很大或者未来会变得很大

依赖数据库(MySQL)自身的特性,完成数据的扩展是较困难的事,在MySQL中,当一个单达表到5-10GB时会出现明显的性能降级,此时需要通过数据的水平和垂直拆分、库的拆分完成扩展,使用MySQL通常需要借助驱动层或代理层完成这类需求。而MongoDB内建了多种数据分片的特性,可以很好的适应大数据量的需求。

基于位置的数据查询

MongoDB支持二维空间索引,因此可以快速及精确的从指定位置获取数据。

表结构不明确,且数据在不断变大

在一些传统RDBMS中,增加一个字段会锁住整个数据库/表,或者在执行一个重负载的请求时会明显造成其它请求的性能降级。通常发生在数据表大于1G的时候(当大于1TB时更甚)。 因MongoDB是文档型数据库,为非结构货的文档增加一个新字段是很快速的 *** 作,并且不会影响到已有数据。另外一个好处当业务数据发生变化时,是将不在需要由DBA修改表结构。

没有DBA支持

如果没有专职的DBA,并且准备不使用标准的关系型思想(结构化、连接等)来处理数据,那么MongoDB将会是你的首选。MongoDB对于对像数据的存储非常方便,类可以直接序列化成JSON存储到MongoDB中。 但是需要先了解一些最佳实践,避免当数据变大后,由于文档设计问题而造成的性能缺陷。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7437776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存