(五)Database数据库学习路径
1. 初阶
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
1 | W3c的sql教程 或 菜鸟教程 | 【SQL】 | https://www.runoob.com/sql/sql-tutorial.html |
2 | 《mySQL必知必会》/ 《SQL必知必会》是一本书 | 【SQL】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgh9yIuwYoo5Wv9gI.pdf 《MySQL必知必会》 这本书讲的非常全,从基本概念,到查询到插入新建表,用户的管理,都有具体的例子,非常适合没有任何基础的同学来学习Mysql,总之这本书学习的方法就是:1、十分钟了解下数据库的基本概念 2、找到练手的数据库 3、对照着上面的内容去敲。本书里也有大量的内容是讲sql的,可以结合w3c的sql教程一起,有取舍地看。 |
2‘ | 《SQL基础教程》 | 【SQL】 平替 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgnNyIuwYokqPc_QM.pdf 对于零基础的朋友来说Mick的《sql基础教程》更容易看懂学会,非常适合入门者学习。如果只推荐一本书的话,我只推荐这本。 == 这本书也是基础入门的数据,讲述了很多SQL的知识点,它是以PostgreSQL 作为教程的,这本书的好处就是有大量的图片。 |
3 | MongoDB University | 【MongoDB】 | 当然是 MongoDB 公司推出的免费在线课程 MongoDB University。这是关于 MongoDB 最好的在线教程,没有之一,权威、系统并且更新及时。可以告诉你的是,MongoDB 新入职员工培训都从这些在线课程开始。MongoDB University 比其它地方能找到的文章和教程要好太多。课程分别针对开发者和 DBA 而设计,非常用心。拿 MongoDB for Developers 来说,它在 mongo shell 之外使用 python 教学,但并不要求 python 经验。7周的课程中,从安装开始,带你写出一个基于 MongoDB 数据库的博客。每周的课程都有小作业,写写代码,答答题。除了在实践中学习,课程也涵盖了开发者需要知道的各方面细节,全面深入。另外,还有对 Foursquare 和 Codecademy 的采访,分享他们的使用经验和演变过程。还可以选择从 Kaltura 加载视频,不用翻墙看 Youtube,是不是非常贴心? |
3‘ | (optional)《MongoDB权威指南》 | 【MongoDB】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgltyIuwYoz5ut0gc.pdf 我对一门技术的学习一般都是从一本书、一个人、一份源码开始的;对于mongo,我觉得从其他人说的《mongodb权威指南》开始就够了;人的话,我身边真没有,网上也少有,所以我一般去stackoverflow上问;源码在这里不是指mongo本身的源码,而是找一个mongodb集群部署的教程一步步实现,在其中你就慢慢理解各个节点、配置的职责和作用了。之后还推荐一本《深入学习mongodb》带你更进一步,然后就在工作中体会吧,随着数据量的增加和需求的变化,你一定会遇到问题,一般查官方文档,同时结合搜索到的其他资料,你会慢慢理解mongo的一些原理(如存储机制),时间久了,自然就通了。 |
4 | 《数据库系统概念》 | 【general】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgiNyIuwYo2vPA5wQ.pdf 《数据库系统概念》这本书是dba必看的。零基础,想要自学数据库Redis入门指南的话,觉得起步阶段首选《数据库系统概念》这本书,因为这本书比较系统且综合全面。里面包含了数据模型、关系模型、基于对象的数据库以及XML、数据存储和查询、事务管理、数据库系统体系结构等各方面的相关内容。相当地直观易懂,里面的有些内容运用了结构清晰的图示和示例来取代形式化的证明。 |
5 | 《Redis入门指南》 或 《Redis使用手册》 | 【Redis】 两本书二选一 | Redis入门指南:https://32931414.s21i.faiusr.com/61/ABUIABA9GAAglNyIuwYo_r_Kvwc.pdf 本书是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识。本书的目标读者不仅包括Redis的新手,还包括那些已经掌握Redis使用方法的人。 Redis使用手册: 我要推荐的《Redis 使用手册》,就是一本非常好用的工具书。在这本书中,作者把 Redis 的内容分成了三大部分,分别是“数据结构与应用”“附加功能”和“多机功能”。其中,我认为最有用的就是“数据结构与应用”的内容,因为它提供了丰富的操作命令介绍,不仅涵盖了 Redis 的 5 大基本数据类型的主要操作命令,还介绍了 4 种扩展数据类型的命令操作,包括位图、地址坐标、HyperLogLog 和流。只要这本书在手边,我们就能很轻松地了解和正确使用 Redis 的大部分操作命令了。 |
5’ | (optional)【尚硅谷】Redis 6 入门到精通 超详细 教程 | 【Redis】 | 【尚硅谷】Redis 6 入门到精通视频课,一共 47 集,内容涵盖:Redis 常用数据类型和底层结构、Redis 和 Spring Boot 整合、Redis 事务和锁、Redis 持久化、Redis 主从复制和集群等等内容,有网友说这套课程基本上是按照《Redis开发与运维》这本书来讲的,可以把这本书拿来作为参考资料。这门课由《尚医通》的王泽老师授课,后面在Java 企业级开发中也会提到。 |
6 | Distributed systems for fun and profit | 【分布式系统】【大局观】 | https://book.mixu.net/distsys/ 这本小书可读性很强,基本的东西也都覆盖差不多了。它比较好多一点是不纠结算法细节,重在梳理思路。当然它也给了reference,假如你需要的话。 |
7 | 《HBase权威指南》 | 【HBase】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgityIuwYo_rHg0gM.pdf |
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
1 | CMU 15-445/645 Database Systems | 【general】【实战】 | https://www.bilibili.com/video/BV1LA411H7Gj/ 教科书:database system concepts https://15445.courses.cs.cmu.edu/fall2017/ 每一门都是非常有趣非常好的课程,学习的话一定要完成作业。从工程角度而言,几门导论课扎实地学了一门之后,找实习/工作应该就不愁了。从research角度来说,Andy的两门课程学得扎实了之后,甚至可以直接尝试自己想idea发sigmod/vldb了。 |
2 | MySQL官方文档 | 【mySQL】 如何阅读官方文档:
| |
3 | 《MySQL技术内幕:InnoDB存储引擎》 | 【mySQL】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtd_IuwYoo82O-Ac.pdf 《MySQL技术内幕:InnoDB存储引擎》这本书详细介绍了 MySQL 的系统架构和各种各样的存储引擎,非常顶的一本书。强烈推荐2、4、5三章。 |
5 | MongoDB官方文档 | 【mongoDB】 | https://www.mongodb.com/docs/manual/ 了解基本概念和用法之后,在项目里试试吧。英文的 MongoDB 文档 绝对会是最好的帮手,能解答你许多疑问。主要内容都有中文翻译 MongoDB 中文文档。不夸张地说,80% 的疑问都可以很容易在文档里找到答案。 |
6 | 《Redis设计与实现》 | 【Redis】 配合读源码 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtt_IuwYozrWGzQY.pdf 另外,真心建议大家试着去读一下Redis源码,没有想象的那么难,而且Redis的代码质量非常高,由于是单线程的内存数据库,没有多线程运行时的复杂逻辑,读起来非常顺畅!其实很多我们纠结的小问题,不要只靠猜和网上查资料,读一下源码就能快速找到答案。而且现在源码分析的文章非常多,讲解的也很细,结合起来读代码并不难。 只有自己试着去读源码,当遇到问题时,再查资料,学习到的东西才是最深刻的。而且在查资料时,还会发现更大的世界,例如老师文章提到的操作系统知识、分布式系统问题、架构设计的取舍等等,这样我们所学到的知识不再是一个面,而是慢慢形成一个知识网,这样才能够达到融会贯通,举一反三。 |
7 | Redis官方文档 | 【Redis】 | https://redis.io/documentation https://redis.io/topics/data-types 中文版:http://redis.cn/ 如何阅读官方文档:
|
8 | 《Redis实战》 和 Redis 命令参考 | 【Redis】 Redis 初学者可以考虑使用《Redis入门指南(第2版)》作为教程, 并辅以《Redis命令参考》文档作为参考。 | Redis实战: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgt9_IuwYo3oK9lwE.pdf Redis 命令参考: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAguN_IuwYooJjpMA.pdf |
9 | MIT 6.824: Distributed Systems | 【分布式系统】 | https://www.youtube.com/@6.824 https://pdos.csail.mit.edu/6.824/schedule.html 跟着他的作业从零开始手撸分布式系统。主要包括mapreduce,paxos,backup server和shared key-value server。重点是,可以手撸。 |
10 | PostgreSQL官方文档 | 【PostgreSQL】 | https://www.postgresql.org/docs/ |
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
1 | 《数据库索引设计与优化》 | 【general】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtt_IuwYo3qCz8gI.pdf 作者通过系统的讲解及大量的案例,清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式。 这本书讲解了如何快速地估算 SQL 运行的 CPU 时间及执行时间,帮助读者从原理上理解 SQL、表及索引结构、访问方式等对关系型数据库造成的影响,并能够运用量化的方法进行判断和优化,指导关系型数据库的索引设计。 |
2 | 《高性能MySQL》 | 【mySQL】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtt_IuwYo9aWulgE.pdf MySQL界的圣经,目前已经出到第三版。非常详细的介绍了MySQL运维的各个部分,可以通读了解,也可以作为工具书进行查阅。 《高性能 MySQL》则从“优化”为入口,将 MySQL 相关的知识点聚合在一起,包括了查询性能优化(SQL 优化)、高性能索引、库表结构(Schema)优化等,也包括了服务器配置(硬件和软件)优化、架构优化(包括了复制、只读节点、分片)等,还介绍了部分云服务商的 MySQL 等内容,是一本非常适合进阶阅读的书籍。 |
3 | 《Redis开发与运维》 | 【Redis】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtt_IuwYopKuFwwM.pdf 既有原理的讲解,又有结合实际案例的实战,既有开发又有运维,难得的理论与实战结合的好书。 |
4 | 《Redis深度历险:核心原理与应用实践》 | 【Redis】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtd_IuwYo57q4Tw.pdf 这本书很薄,而且最大的特点是讲解接地气,它可以让你对Redis的基础使用、业务场景、原理分析有一个基本的认识和了解,作为入门和进阶非常合适,起码可以让你重新树立起深入学习Redis的信心。 |
5 | CMU Advanced Database Systems (15-721) | 【分布式系统】 | https://www.bilibili.com/video/BV1mJ41147KK/?spm_id_from=333.337.search-card.all.click 这两个不用多说,经典的数据库入门教程,由数据库的大佬 Andy Pavlo 亲自授课。可以了解到数据库的基本概念,例如存储、BufferPool 管理、索引、优化器、执行器、事务、MVCC 等。 == 讨论更高级主题,主要是paper讲解 |
6 | Google的三篇论文 | 【分布式系统】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtd_IuwYo0tmH4QM.pdf https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtd_IuwYop_vXrAU.pdf https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgtN_IuwYosLWbrQU.pdf |
7 | 论文 |