001A-推荐几本学习MySQL的好书

文章目录

  • 推荐几本学习MySQL的好书
    • 1.MySQL的使用
        • 1.1 MySQL技术内幕:InnoDB存储引擎
        • 1.2 MySQL的官方手册
        • 1.3 MySQL排错指南
        • 1.4 高性能MySQL
        • 1.5 数据库索引设计与优化
        • 1.6 Effective MySQL系列
    • 2.MySQL的源码
        • 2.1 InnoDB - A journey to the core
        • 2.2 深入MySQL源码
        • 2.3 深入理解MySQL核心技术
        • 2.4 MySQL内核:InnoDB存储引擎
        • 2.5 MySQL Internals Manual
    • 3. 后记
    • 4. MySQL配套培训视频(姜承尧)

推荐几本学习MySQL的好书

我这里推荐几本MySQL的好书,应该能够有效避免学习MySQL的弯路,并且达到一个不错的水平。 我这里推荐的书或材料分为两个部分,分别是MySQL的使用和MySQL的源码学习。在介绍的过程中,我会穿插简单的评语或感想。

1.MySQL的使用

1.1 MySQL技术内幕:InnoDB存储引擎

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

001A-推荐几本学习MySQL的好书_第1张图片

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来说,这本书基本没有什么用,但是,对于刚入职场的新人,或学校里的学生,这本书会有较大的帮助,非常推荐。

001A-推荐几本学习MySQL的好书_第2张图片

1.4 高性能MySQL

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

001A-推荐几本学习MySQL的好书_第3张图片

1.5 数据库索引设计与优化

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

001A-推荐几本学习MySQL的好书_第4张图片

1.6 Effective MySQL系列

《Effective MySQL系列》是指:

  • Effective MySQL Replication Techniques in Depth
  • Effective MySQL之SQL语句最优化
  • Effective MySQL之备份与恢复

001A-推荐几本学习MySQL的好书_第5张图片

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

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源码的决心,这本书应该会被唾弃。

001A-推荐几本学习MySQL的好书_第6张图片

2.4 MySQL内核:InnoDB存储引擎

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

001A-推荐几本学习MySQL的好书_第7张图片

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层感兴趣的可以参考一下。

001A-推荐几本学习MySQL的好书_第8张图片

3. 后记

希望这里推荐的材料对学习MySQL的同学、朋友有所帮助,也欢迎推荐靠谱的学习材料,大家共同进步。

出处


4. MySQL配套培训视频(姜承尧)

视频地址:https://www.bilibili.com/video/av20081312/

课程概览:

业界最权威的MySQL数据库培训师姜承尧老师(也就是Inside君本人啦)亲授.
姜承尧老师出版了《MySQL技术内幕:InnoDB存储引擎》、《MySQL内核:InnoDB存储引擎》等Mysql书籍。
课程紧密结合互联网公司实践,学员能够领略到BAT、网易等大公司的数据库架构与应用案例
课纲结合最新的MySQL 5.6、5.7版本,使得学员学到的都是最新的内容
充分掌握课程内容的学员年薪至少在25W起,第1期的学员已经证明了培训的价值
优秀学员可以获得姜老师的BAT等大型互联网公司的内推
面试技巧与简历模板(新增),帮助学员拿到更好的offer

下面链接未验证
【MySQL 安装与引擎】
day001-MySQL 5.7介绍和安装
day002-MySQL 5.7安装多实例
day003-MySQL升级 参数 连接 权限
day004-MySQL权限拾 遗Role模拟 Workbench 体系结构

day005-slow_log generic_log audit 存储引擎一
day006-存储引擎二 多实例安装上
day007-MySQL 多实例下 SSL
MySQL 数据类型和SQL查询 开发
day008-MySQL 数据类型
day009-精通JSON类型
day010-Employees 临时表的创建 外键约束

day011-SQL语法之SELECT
day012-子查询 INSERT UPDATE DELETE REPLACE
day013-作业讲解一 Rank 视图 UNION 触发器上
day014-触发器下 存储过程 自定义函数
MySQL 执行计划与优化器
day015-索引 B+树 上
day016-索引 B+树 下 Explain 1
day017-Explain 2

【MySQL innodb引擎优化】
day018-磁盘
day019-磁盘测试
day020-InnoDB_1 表空间 General
day021-InnoDB_2 SpaceID.PageNumber 压缩表)
day022-InnoDB_3 透明表空间压缩 索引组织表
day023-InnoDB_4 页(2) 行记录
day024-InnoDB_5 – heap_number Buffer Poo
day025-InnoDB_6 Buffer Pool与压缩页 CheckPoint LSN
day026-InnoDB_7 doublewrite ChangeBuffer AHI FNP

【MySQL 索引与innodb锁机制】
day027-Secondary Index
day028-join算法锁_1
day029-锁_2
day030-锁_3
day031-锁_4
day032-锁_5
day032-锁5标清
day033-锁_6 事物_1

day033-锁_6 事物1标清

day034-事务_2 MySQL 性能衡量
day035-redo_binlog_xa
day036-undo_sysbench
day036-undosysbench标清
day037-tpcc_mysqlslap

【MySQL 备份与恢复】
day038-purge死锁举例_MySQL backup备份_1
day039-MySQL backup备份恢复_2

【MySQL 复制技术与高可用】
day040-MySQL 备份恢复backup_3_replication_1
day041-backup_4-replication_2
day042-replication_3
day043-replication_4-GTID 1
day044-replication_5-GTID 2

你可能感兴趣的:(mysql)