如何系统学习 MySQL?
我的问题:如何“系统”学习mysql?
比如需要看哪些书籍,哪些资料?我曾研读过以下几本书:《高性能mysql》,简朝阳的mysql优化,innodb存储引擎。我个人感觉前两本是告诉读者知其然,第三本是告诉读者所以然。这三本书是有一种渐进的关系的,如果没有前两本的积累和一定的工作经验,直接看第三本的效果是不太好的。
学习数据库知识,或者狭义说学习mysql,其学习过程比较曲折,没人谁能告诉你,只要看过某几本书,掌握好哪些知识就算是精通、掌握mysql了。知识面是非常广,知识点是零散的,不像学习编程语言那么系统、那么直接明了。
这也是我感觉比较迷茫的地方,怎样才能系统学习?
现在我工作之余有空就在阅读英文版的官方参考手册,一则培养看英文技术文档的能力,二则希望通过官方文档来系统学习,不希望只通过一两篇技术文档、一两个案例这样零散的学习方式。
mysql的官方文档就是非常系统,非常详细的指导。
在阅读之余,可以参考其它人写的书籍。
作者:温国兵
链接:https://www.zhihu.com/question/21760988/answer/19235639
来源:知乎
1.系统学习数据库,最要紧的是把基本功打牢,所以《数据库系统概念 原书第六版》是一本不可多得的好书,任何数据库背后的原理基本上都是想通的,其他的都是不同厂商或组织做的改进和优化;
2.如果对MySQL题体系结构、原理性的东西没搞明白,就阅读优化相关的书,我觉得是徒劳,因为原理不懂,何谈优化?所以这里可以推荐两本本书籍:《深入理解MySQL》(人民邮件出版社 Charles A Bell著 杨涛等译)、《深入理解MySQL核心技术》(O'REILLY出版社 中国电力出版社 Sasha Pachev著 李芳等译);
3.对原理性的东西弄彻底后,再加上足够多的操练,现在可以看些优化、高可用、备份与恢复、集群、优化的书,比如前辈提到的《高性能MySQL》(O'REILLY出版社 电子工业出版社 Baron Schwartz等著 王小东等译)、《MySQL性能调优与架构设计》(简朝阳),其他的书籍比如《高可用MySQL——构建健壮的数据中心》(O'REILLY出版社 电子工业出版社 Charles Bell等著 宁青等译)……(欢迎补充)
4.再深层次可以研究下MySQL源码,内部实现机制等等。这里我也不知路向;
5.Linux方面的知识想必前辈已经非常熟练,在此不赘述。
下面贴两个帖子,
一个是“
知名DBA专家冯春培先生分享自己的职业之路”中的片段,
一个是“
如何理解高级MySQL DBA必备素养以及技能”的片段。
From: 知名DBA专家冯春培先生分享自己的职业之路
hwayw:
现在有人认为学oracle很有出路,有人认为学mysql前途更大,还有人觉得nosql才是未来的数据库趋势,您是怎么看待这样的观点?有关关系型数据库和非关系型数据库的争议,您又怎么看?
biti_rainy:
我学习oracle的时候oracle数据库还为广泛应用,DBA也比较少,算是懵懂的在正确的时间进了正确的门。2001年到2006年真的是DBA学习成长的黄金时期,那时候涌现了一堆有影响力的人。这不是说现在的oracle DBA技能就比那时候的差,而是现在的确算不上黄金时期了,因为oracle已经广泛应用了。但是现在这个时段就是做数据库服务的好时期,而我们那时候想做却不成气候。2006年的时候我招了个应届生叫简朝阳,后来我建议他重点学习mysql,并给予了很大的自由度和计划到他,帮助他成长,后来他写了本书,同时自己成长的非常快,在mysql领域也是非常有影响力。当时之所以建议他学习mysql,是因为oracle的硬件实施整体成本非常高,一用上小型机和SAN存储,oracle费用其实不足total费用的20%。一方面为了公司节约成本考虑,另一方面也感觉到这是未来的趋势,大环境给予了他这个机遇,而我只是提前做出了判断并引导了他。现在由于互联网企业的发展,好像nosql发展的迅猛,这其实不过是在特定场景解决特定问题罢了。我认为未来十年nosql可以取代RDBMS是个伪命题,其实发展到后来两者趋势逐渐一致,nosql想要通用也得具有RDBMS的很多特征,就越长越像了。Google最近出的数据库,其实我看很多特点和概念也类似oracle呢,概念上大家都没什么新鲜玩意,都是在规模上的量变导致质变。而一般用户解决规模问题最简单的是硬件、网络的突破,这更容易带来数据库应用的发展。所以我更主张大家透过现象去看技术的实质,研究各种技术的特点背后的优劣到底是怎么回事,这样才有自己的看法。Oracle、mysql、nosql都是一些具体的数据管理的表现形式,他们主要面对什么客户、解决什么问题、带来什么价值,看透了这些,我们就不会被表象所牵引。当然,我认为管理好数据之后,发掘数据价值是一个很重要的事情。
From: 如何理解高级MySQL DBA必备素养以及技能?
1、MYSQL 重要参数的作用; 包括副作用哪些呢? 是key_buffer_size、tmp_table_size、sort_buffer_size、innodb_buffer_size、innodb_log_file_size、innodb_flush_logs_at_trx_commit、max_tmp_tables 等等!
2、SHELL 要熟练; shell具体指的是啥,能否举例说明一本书籍,说搞懂了这本书籍,shell就算熟练了?
3、PYTHON , PERL 懂一种。 不懂,看来还得去买一本书,慢慢修炼了。
4、性能测试要会; 没有弄过,如何做,用啥工具,如何看测试过后的各种测试数据。
5、LINUX 熟练操作; linux操作都包括哪些方面呢?能举几个例子说明一下吗?
-
MySQL学习四部曲
http://yaocoder.blog.51cto.com/2668309/1224685
我买书有个习惯,首先去豆瓣去看书籍评分(感觉豆瓣的数据是最客观的),于是淘到了这么四本MySQL书籍,我称之为四部曲。
第一部曲: 《SQL学习指南》
这本书适合初学MySQL的人,特别适合使用MySQL的工程师。书中的内容讲的是标准SQL语言,自然难免包含其他数据库的知识,但是发现作者很偏向MySQL,讲述MySQL的篇幅很多。看了这本书后会让你很快对MySQL有一个纵览,里面对SQL语句的讲解也很细致,有深有浅,对于使用MySQL的工程师们,看完这本书就差不多了。
第二部曲: 《高性能MySQL》
知道这本书的时候是其第二版,书店、网上的商家都找了,全都无货,非常扫兴。直到前一阵子买到了第三版,已经阅读了一段时间,但这种大头书啃完估计还要好一阵。之前在豆瓣评论中看见第二版评价说翻译的不好,但是我感觉这一版翻译的相当流畅,也没发现有歧义的词汇。这本书如其名一般,更多的是探讨如何提高MySQL的性能,实用性相当的强,刚阅读就解决了我们几个问题,感觉这本书更适合架构师,DBA阅读。要我说,其对应的正是架构设计中的垂直扩展。
第三部曲: 《高可用MySQL》
“主备,读写分离,集群”听到这些概念大家应该比较熟悉吧。这本书的副标题为“构建健壮的数据中心”,“主备,读写分离,复制,集群......”这些话题都会在书中涉及,目前我们的数据量还达不到这个阶段,我也只能理论学习下,希望有一天业务数据量能给我实践机会,话说有这种数据量时我也就生活无忧了,渴望中。这本书更适合架构师,DBA阅读。要我说,其对应的正是架构设计中的水平扩展。
第四部曲: 《SQL反模式》
一部适合所有类型数据库设计的书,不同于其他书的写作模式,作者先会提出一个我们经常使用的观点,然后指出其不合适之处。然后给再我们指明相对(即使是反模式也有其适用场景)正确的观点,这本书适合架构师,DBA阅读。
-