欢迎关注公众号:“Java元空间” ,回复“资料”,获取大厂面试资料。这里有Java、SQL、大厂面试经验、面试题,欢迎大家关注交流。
我这里推荐几本MySQL的好书,应该能够有效避免学习MySQL的弯路,并且达到一个不错的水平。我这里推荐的书或材料分为两个部分,分别是MySQL的使用和MySQL的源码学习。在介绍的过程中,我会穿插简单的评语或感想。

1.MySQL的使用
1.1 MySQL技术内幕:InnoDB存储引擎
学习MySQL的使用,首推姜承尧的《MySQL技术内幕:InnoDB存储引擎》,当然不是因为姜sir是我的经理才推荐这本书。这本书确实做到了由渐入深、深入浅出,是中国人写的最赞的MySQL技术书籍,符合国人的思维方式和阅读习惯,而且,这本书简直就是面试宝典,对于近期有求职MySQL相关岗位的朋友,可以认真阅读,对找工作有很大的帮助。当然,也有人说这本书入门难度较大,这个就自己取舍了,个人建议就以这本书入门即可,有不懂的地方可以求助官方手册和google。

1.2 MySQL的官方手册
我刚开始学习MySQL的时候误区就是,没有好好阅读MySQL的官方手册。例如,我刚开始很难理解InnoDB的锁,尤其是各个情况下如何加锁,这个问题在我师弟进入百度做DBA时,也困扰了他一阵子,我们两还讨论来讨论去,其实,MySQL官方手册已经写得清清楚楚,什么样的SQL语句加什么样的锁,当然,MySQL的官方手册非常庞大,一时半会很难看完,建议先看InnoDB相关的部分。

http://dev.mysql.com/doc/refman/5.7/en/innodb-storage-engine.html

1.3 MySQL排错指南
《MySQL排错指南》是2015年夏天引入中国的书籍,这本书可以说是DBA速成指南,介绍的内容其实比较简单,但是也非常实用,对于DBA这个讲究经验的工种,这本书就是传授经验的,可能对有较多工作经验的DBA来说,这本书基本没有什么用,但是,对于刚入职场的新人,或学校里的学生,这本书会有较大的帮助,非常推荐。

1.4 高性能MySQL
《高性能MySQL》是MySQL领域的经典之作,拥有广泛的影响力,学习MySQL的朋友都应该有所耳闻,所以我就不作过多介绍,唯一的建议就是仔细看、认真看、多看几遍,我每次看都会有不小的收获。这就是一本虽然书很厚,但是需要一页一页、一行一行都认真看的书。

1.5 数据库索引设计与优化
如果认真学习完前面几本书,基本上都已经对MySQL掌握得不错了,但是,如果不了解如何设计一个好的索引,仍然不能成为牛逼的DBA,牛逼的DBA和不牛逼的DBA,一半就是看对索引的掌握情况,《数据库索引设计与优化》就是从普通DBA走向牛逼DBA的捷径,这本书在淘宝内部非常推崇,但是在中国名气却不是很大,很多人不了解。这本书也是今年夏天刚有中文版本的,非常值得入手以后跟着练习,虽然知道的人不多,豆瓣上也几乎没有什么评价,但是,强烈推荐、吐血推荐!

1.6 Effective MySQL系列
《Effective MySQL系列》是指:

Effective MySQL Replication Techniques in Depth

Effective MySQL之SQL语句最优化

Effective MySQL之备份与恢复

这一系列并不如前面推荐的好,其中,我只看了前两本,这几本书只能算是小册子,如果有时间可以看看,对某一个”模块”进入深入了解。

2.MySQL的源码
关于MySQL源码的书非常少,还好现在市面上有两本不错的书,而且刚好一本讲server层,一本讲innodb存储引擎层,对于学习MySQL源码会很有帮助,至少能够更加快速地了解MySQL的原理和宏观结构,然后再深入细节。此外,还有一些博客或PPT将得也很不错,这里推荐最好的几份材料。

2.1 InnoDB - A journey to the core
《InnoDB - A journey to the core》 是MySQL大牛Jeremy Cole写的PPT,介绍InnoDB的存储模块,即表空间、区、段、页的格式、记录的格式、槽等等。是学习Innodb存储的最好的材料。感谢Jeremy Cole!

2.2 深入MySQL源码
登博的分享《深入MySQL源码》,相信很多想了解MySQL源码的朋友已经知道这份PPT,就不过多介绍,不过,要多说一句,登博的参考资料里列出的几个博客,都要关注一下,干货满满,是学习MySQL必须关注的博客。

2.3 深入理解MySQL核心技术
《深入理解MySQL核心技术》是第一本关于MySQL源码的书,着重介绍了MySQL的Server层,重点介绍了宏观架构,对于刚开始学习MySQL源码的人,相信会有很大的帮助,我在学习MySQL源码的过程中,反复的翻阅了几遍,这本书刚开始看的时候会很痛苦,但是,对于研究MySQL源码,非常有帮助,就看你是否需要,如果没有研究MySQL源码的决心,这本书应该会被唾弃。

2.4 MySQL内核:InnoDB存储引擎
我们组的同事写的《MySQL内核:InnoDB存储引擎》,可能宇宙范围内这本书就数我学得最认真了,虽然书中有很多编辑错误,但是,平心而论,还是写得非常好的,相对于《深入理解MySQL核心技术》,可读性更强一些,建议研究Innodb存储引擎的朋友,可以了解一下,先对Innodb有一个宏观的概念,对大致原理有一个整体的了解,然后再深入细节,肯定会比自己从头开始研究会快很多,这本书可以帮助你事半功倍。

2.5 MySQL Internals Manual
《MySQL Internals Manual》相对于MySQL Manual来说,写的太粗糙,谁让人家是官方文档呢,研究MySQL源码的时候可以简单地参考一下,但是,还是不要指望文档能够回答你的问题,还需要看代码才行。

http://dev.mysql.com/doc/internals/en/

2.6 MariaDB原理与实现
评论里提到的《MariaDB原理与实现》我也买了一本,还不错,MariaDB讲的并不多,重点讲了Group Commit、线程池和复制的实现,都是MySQL Server层的知识,对MySQL Server层感兴趣的可以参考一下。

  1. 后记
    希望这里推荐的材料对学习MySQL的同学、朋友有所帮助,也欢迎推荐靠谱的学习材料,欢迎关注公众号:“Java元空间” ,回复“1”,获取大厂面试资料。这里有Java、SQL、大厂面试经验、面试题,欢迎大家关注交流

出处:http://mingxinglai.com/cn/2015/12/material-of-mysql/

推荐几本学习MySQL的好书相关推荐

  1. 推荐一个学习mysql的网站

    今天看到一个学习mysql比较有用的网站 ,我感觉比简单的总结更好用一些,毕竟有例子,可以实践看看,所以推荐给大家没事可以上上.然后其他呢,五一玩的不错,西安还是可以短途游玩的. http://www ...

  2. 给 Java 程序猿们推荐一些值得一看的好书

    转载:http://www.cnblogs.com/xrq730/p/4994545.html 学习的最好途径就是看书 "学习的最好途径就是看书",这是我自己学习并且小有了一定的积 ...

  3. 关于python的一些好的书籍推荐-推荐几本关于的Python好书

    不可错过的十本Python好书,分别适合入门.进阶到精深三个不同阶段的人来阅读,感兴趣的小伙伴们可以参考一下 以往的文章中小编已经给大家陆续推荐了很多的Python书籍,可以说品种齐全.本本经典了,不 ...

  4. access 导入 txt sql语句_从零开始学习 MySQL 系列索引、视图、导入和导出

    阅读本文大概需要 8 分钟 前言上篇文章我们学习了数据库和数据表操作语句,今天我们学习下数据库索引,视图,导入和导出的知识.作为基础篇,不会涉及到关于索引和视图的高级应用和核心概念,但是基本操作大家会 ...

  5. 学python哪个网站好-有哪些值得推荐的Python学习网站|

    现在那个网站可以学习python爬虫? 为大家分享Python学习经验: 1.寻找一本Python书籍,要求浅显易懂.全面细致程较好,专注于这一本,从头开始研究,把整本书掌握透彻. 2.找一个项目练手 ...

  6. mysql errno 1146_Mysql学习MySQL复制出错 Last_SQL_Errno:1146的解决方法

    <MysqL学习MysqL复制出错 Last_sql_Errno:1146的解决方法>要点: 本文介绍了MysqL学习MysqL复制出错 Last_sql_Errno:1146的解决方法, ...

  7. 小白学习MySQL - 一次慢SQL的定位

    同事提了个问题,某套测试环境MySQL执行语句出现hang. 作为小白,每次碰到问题,都是在积累经验.执行SQL出现hang,说明应该有会话处于等待状态,可以通过show processlist看下当 ...

  8. MySQL入门教程系列-1.5 如何学习MySQL

    共同编辑,修正错误,这里点击进去 如何学习 MySQL 这是一个伪命题,每个人都有适合自己的一套学习方法,各不相同,所以如何学习 MySQL 这个活儿,我没有办法告诉你我的这个学习方法就是你做好的学习 ...

  9. 推荐算法工程师学习路线及工作指南

    干货!推荐算法工程师学习路线及工作指南 以下文章来源于大数据与人工智能 ,作者gongyouliu 本文从我自己的学习成长经历.如何判断自己是否适合从事推荐算法.推荐算法工程师需要的知识储备.怎么找一 ...

  10. 如何系统学习MySQL数据库?

    前两天,我跟一个面试官聊天,发现一个普遍现象,不少候选人,对数据库的认知,还处在比较基础的阶段,以为会写"增删改查".做表关联就足够了,那些工作中经常出现的问题,却支支吾吾答不上来 ...

最新文章

  1. 张萍萍 计科高职13-1 201303014010 实践三结对项目
  2. 何恺明最新一作论文:无监督胜有监督,迁移学习无压力,刷新7项检测分割任务...
  3. 交通银行软件中心编制_国家标准研究项目区块链服务技术安全要求编制启动会顺利召开...
  4. MySQL之优化器、执行计划、简单优化
  5. Jeecg-Boot 2.0.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台
  6. 快速搭建移动应用直传服务
  7. Flex的事件(三)
  8. javascript原生事件总结
  9. 计算机二级python考试大纲2020_【2020年9月全国计算机二级Python考试大纲】- 环球网校...
  10. js Math对象属性和方法
  11. Unity Understanding Lifetime Managers
  12. 如何查找各个手机放序列号
  13. 制造资源计划与企业资源计划(MRPⅡ)
  14. 20个免费的SEO网站分析工具
  15. appium的安装+连接夜神模拟器控制app
  16. Shiro 通过配置Cookie 解决多个二级域名的单点登录问题。
  17. Servlet的路径配置
  18. mysql序号rownum行号实现
  19. JAR 文件格式的强大功能(java中jar工具的使用)
  20. 38 --> 详解 OpenWRT RESET按键、键盘响应逻辑

热门文章

  1. 网页设计之 HTML代码的理解.
  2. 代码制作数字流星雨_C语言实现流星雨 | 学步园
  3. 医疗新基建,更需新安全
  4. 机器人产业进入“快车道”, 细分领域深耕细作成趋势。...
  5. 直销模式系统开发|双轨制度跟级差制度哪个模式比较好?
  6. json转换为对象 java对象数组对象_将json数组转换为java列表对象
  7. java面试题(分布式篇)
  8. 分享一个嘉立创封装库(内含AD和PADS两种格式)
  9. 生物信息学 | GEO介绍与安装
  10. 数据挖掘:关联分析—Apriori算法