mysql.md 12.4 KB
Newer Older
沉默王二's avatar
沉默王二 已提交
1 2
---
star: true
沉默王二's avatar
沉默王二 已提交
3
title: 2023年最值得收藏的MySQL学习路线(建议收藏🔥)
沉默王二's avatar
沉默王二 已提交
4 5 6 7 8 9 10 11 12
shortTitle: MySQL学习路线
category:
  - 学习路线
tag:
  - 学习路线
description: MySQL学习资料 | 学习路线 | 注意事项,MySQL需要学什么
head:
  - - meta
    - name: keywords
沉默王二's avatar
沉默王二 已提交
13
      content: MySQL,学习路线,mysql教程,mysql面试
沉默王二's avatar
沉默王二 已提交
14 15 16
---


沉默王二's avatar
沉默王二 已提交
17
MySQL 不管是校招还是社招面试中,被问到的频率都非常高;在日常开发中,MySQL 的使用频率也非常高,几乎是 Java 后端开发必须掌握的技术栈,所以 MySQL 也被二哥归纳到了**Java 后端四大件**中。
沉默王二's avatar
沉默王二 已提交
18 19 20 21 22 23 24 25 26 27 28 29 30

## 第一阶段:SQL

学习 MySQL 之前,先学一手 SQL,对后面学习 MySQL 也会有非常大的帮助。

### 视频

可以先学习 SQL,推荐中字《**10小时零基础成长SQL大师**》,虽然是一门国外的课程,但画面实在是太优美了,必须得推荐啊,尤其对初学者而言,直接入手这个版本能塑造良好的SQL编写思维和逻辑能力。看不懂就多看几遍嗷!

这个视频虽然只需要 10 小时,但讲的内容还是非常全面的,包括 select、where、and、in、like、order by、limit、inner join、self join、outer join、union、insert、update、delete、group by等等。

>视频地址:[https://www.bilibili.com/video/BV1UE41147KC](https://www.bilibili.com/video/BV1UE41147KC)

沉默王二's avatar
沉默王二 已提交
31
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-370c309d-b3f6-4d68-917a-4069ebc7a600.png)
沉默王二's avatar
沉默王二 已提交
32 33 34 35 36 37

### 书籍

书的话,有两本,一本是《[SQL 必知必会](https://book.douban.com/subject/35167240/)》,一本是《[SQL基础教程(第2版)](https://book.douban.com/subject/27055712/)》,任选一本即可。


沉默王二's avatar
沉默王二 已提交
38
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-9d645bf3-fe62-47bd-bfe3-bd31d4987d5a.png)
沉默王二's avatar
沉默王二 已提交
39 40


沉默王二's avatar
沉默王二 已提交
41
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-ff3e8536-4690-4b60-8e69-27e641c9ea39.png)
沉默王二's avatar
沉默王二 已提交
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59


## 第二阶段:入门 MySQL

SQL 学完,再学 MySQL 就会更加丝滑,学习曲线会平滑一些。

### 视频

视频的话,可以在B 站上搜 MySQL 关键字,基本上各大培训机构都有公开的视频课,课程质量也不错。随便挑一个自己喜欢的跟着学就对了。



如果是声控的同学,推荐尚硅谷宋红康老师的《**MySQL数据库教程天花板,mysql安装到mysql高级,强!硬!**》,视频涉及到的内容数据库概述和 MySQL 的安装、SQL 之 select 使用、SQL 之 DDL、DML、DCL 使用、(视图、存储过程与函数、变量、流程控制、游标、触发器)等等内容。

有同学对这门视频的评价是声音要听起来比较容易勾起学习的欲望,所讲的内容要比较容易消化吸收。

>视频地址:[https://www.bilibili.com/video/BV1iq4y1u7vj](https://www.bilibili.com/video/BV1iq4y1u7vj)

沉默王二's avatar
沉默王二 已提交
60
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-4c9d7851-9563-4864-b565-1e28a657b160.png)
沉默王二's avatar
沉默王二 已提交
61 62 63 64 65 66


如果喜欢女老师上课的话,推荐尚硅谷的另外一门课《**MySQL基础教程丨mysql数据库实战**》视频课,一共 178 集,基本上覆盖了 MySQL 的核心技术点,包括数据库和表的常用操作、约束、视图、存储过程等内容。不过,这个视频的录音质量真的是不太高,建议大家不要带耳机来修这门课。

>视频地址:[https://www.bilibili.com/video/BV1xW411u7ax](https://www.bilibili.com/video/BV1xW411u7ax)

沉默王二's avatar
沉默王二 已提交
67
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-f8c57aad-669e-4980-93ed-b4e78bc87cd2.png)
沉默王二's avatar
沉默王二 已提交
68 69 70 71 72 73 74
如果想突击 MySQL 的话,推荐《**老杜带你学_mysql入门基础**》,据说 3 天就能学完,一共 151 集,有同学对课程进行了总结提炼,这里也贴一下博客地址:

>博客地址:[https://blog.csdn.net/weixin_43896929/article/details/120750965](https://blog.csdn.net/weixin_43896929/article/details/120750965)

>视频地址:[https://www.bilibili.com/video/BV1Vy4y1z7EX](https://www.bilibili.com/video/BV1Vy4y1z7EX)


沉默王二's avatar
沉默王二 已提交
75
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-32720432-9269-4b99-929a-b359afa96c04.png)
沉默王二's avatar
沉默王二 已提交
76 77 78 79 80 81 82 83 84


### 书籍



书籍的话,推荐《[MySQL 是怎样使用的、快速入门 MySQL](https://book.douban.com/subject/35670862/)》、《[MySQL 必知必会](https://book.douban.com/subject/3354490/)》,任选一本就可以。


沉默王二's avatar
沉默王二 已提交
85
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-3cb6a898-977f-4586-8e78-0246c322855c.png)
沉默王二's avatar
沉默王二 已提交
86 87


沉默王二's avatar
沉默王二 已提交
88
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-9d5db75f-10c8-464e-bbd4-35a79785cd61.png)
沉默王二's avatar
沉默王二 已提交
89 90 91 92

《MySQL 是怎样使用的、快速入门 MySQL》这本书在掘金上也有[小册](https://s.juejin.cn/ds/MDPeuBk/),如果购买过这本小册的话,也就不用再购买纸质书了。


沉默王二's avatar
沉默王二 已提交
93
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-22571cf9-8058-4613-b8df-9dd5cdfcb47b.png)
沉默王二's avatar
沉默王二 已提交
94 95 96 97 98 99 100 101 102


### MySQL 学习建议

一定要在本机上把 MySQL 数据库先安装了,直接通过 MySQL 官网下载,建议安装 MySQL 5.7 以上版本。

>[https://dev.mysql.com/downloads/mysql/](https://dev.mysql.com/downloads/mysql/)


沉默王二's avatar
沉默王二 已提交
103
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-10f00d3a-2cbb-4ba7-8c1f-526391de2b36.png)
沉默王二's avatar
沉默王二 已提交
104 105 106 107 108


安装完成后,记得安装可视化工具:**Navicat**,方便操作。


沉默王二's avatar
沉默王二 已提交
109
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-f0e569b0-5c8d-4387-87cd-f5df64e218cd.png)
沉默王二's avatar
沉默王二 已提交
110 111 112 113 114

星球里分享过 macOS 的 Navicat 破解版:

>[https://t.zsxq.com/04eMf6AMZ](https://t.zsxq.com/04eMf6AMZ)

沉默王二's avatar
沉默王二 已提交
115
Windows 的话,在 Java程序员进阶之路上分享过破解方法:
沉默王二's avatar
沉默王二 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139

>[https://tobebetterjavaer.com/nice-article/itmind/navicatzxbwindowspjbjc.html](https://tobebetterjavaer.com/nice-article/itmind/navicatzxbwindowspjbjc.html)

**破解方法请勿外传,保密就对了**

这个阶段,一定要把基本的 SQL 语句练一练:

*   **SELECT** - 从数据库中提取数据
*   **UPDATE** - 更新数据库中的数据
*   **DELETE** - 从数据库中删除数据
*   **INSERT INTO** - 向数据库中插入新数据
*   **CREATE DATABASE** - 创建新数据库
*   **ALTER DATABASE** - 修改数据库
*   **CREATE TABLE** - 创建新表
*   **ALTER TABLE** - 变更(改变)数据库表
*   **DROP TABLE** - 删除表
*   **CREATE INDEX** - 创建索引(搜索键)
*   **DROP INDEX** - 删除索引

在之后可以到牛客上,把 SQL 相关的练习题刷一波。

>[https://www.nowcoder.com/ta/sql](https://www.nowcoder.com/ta/sql)


沉默王二's avatar
沉默王二 已提交
140
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-dfdb957f-ff78-42e5-aae5-758d84852e46.png)
沉默王二's avatar
沉默王二 已提交
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172


如果你是测试人员、业务人员、数据分析岗,或者实习岗,一般掌握到这个成都就可以了。如果你是 Java 后端开发人员,或者 DBA,那就要往进阶层面走了。

## 第三阶段:进阶 MySQL

面试造火箭,工作拧螺丝,虽然日常开发中,大部分人也就写写 SQL 就行了,但不好意思,面试中(或者你想成为 MySQL 方面的专家)99% 的情况下,还是会被问到原理的,比如说索引、锁、日志、引擎等。

举一些例子:

1、一条 SQL 是如何执行的?也就是说,从MySQL 客户端执行了一条 SQL 语句,MySQL 服务端会进行哪些处理。

2、索引相关:索引是如何实现的?MySQL 的索引采用的哪种数据结构?哈希索引和 B+ 树索引的区别是什么?

3、事务相关:事务的四大特性是什么?什么是幻读、脏读、不可重复读?、MVCC 了解吗?怎么实现的?

4、锁相关:表锁、行锁、意向锁、乐观锁、死锁,这些锁主要是用来解决什么问题的?

5、日志相关:MySQL 日志文件有哪些?binlog 和 redo log 有什么区别?redo log 是怎么刷入磁盘的呢?

6、高可用/性能相关:数据库读写分离了解吗?读写分离是如何实现的?主从复制的原理了解吗?分库分表了解吗?

7、SQL 优化相关:慢 SQL 如何定位?如何优化慢 SQL?

### 书籍

推荐《[高性能 MySQL](https://book.douban.com/subject/36096578/)》、《[MySQL 是怎样运行的:从跟上理解 MySQL](https://book.douban.com/subject/35231266/)》、《[MySQL技术内幕:InnoDB存储引擎](https://book.douban.com/subject/24708143/)》。


《高性能 MySQL》出到了第四版,和第三版比,删除了不少内容,更精简了。


沉默王二's avatar
沉默王二 已提交
173
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-af4eafb6-7a37-4931-8aac-dc44bcabfb82.png)
沉默王二's avatar
沉默王二 已提交
174 175 176 177 178


《MySQL 是怎样运行的:从跟上理解 MySQL》这本书真不错,评价非常高。全书分为四个部分,第一部分(1-3 章),主要就是普及 MySQL;第二部分(4-9 章)是全书的基础,介绍了 InnoDB、索引、B+树;第三部分(10-17 章)主要介绍了工作中常用到的查询优化,比如说单表查询是如何执行的,连接查询是如何执行的,以及如何查看 explain 语句的执行结果;第四部分(18-22 章)介绍了事务、redo 日志、MVCC、各种锁的细节。


沉默王二's avatar
沉默王二 已提交
179
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-018bba71-529c-41ff-8622-60439fec0b50.png)
沉默王二's avatar
沉默王二 已提交
180 181 182 183 184


《MySQL 是怎样运行的:从跟上理解 MySQL》这本书在掘金上也有[小册](https://s.juejin.cn/ds/MDfcwNb/),购买过的可以不用再购买纸质书了,内容差不多。


沉默王二's avatar
沉默王二 已提交
185
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-675d507a-f05b-4f53-9c7e-9394502a6576.png)
沉默王二's avatar
沉默王二 已提交
186 187 188 189 190 191



《MySQL技术内幕:InnoDB存储引擎》这本书详细介绍了 MySQL 的系统架构和各种各样的存储引擎,非常顶的一本书。强烈推荐2、4、5三章。


沉默王二's avatar
沉默王二 已提交
192
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-f0631706-60e8-473e-89e9-04ea5fc0dccd.png)
沉默王二's avatar
沉默王二 已提交
193 194 195 196 197 198 199 200



### 付费课程

极客上的《[MySQL 实战 45 讲](http://gk.link/a/11Gcp)》评价挺高的,可以看看。一共分为两部分,基础篇(深入浅出地讲述了 MySQL 的核心知识、以及 MySQL 的基础架构、日志系统、事务隔离、锁等内容)和实践篇(结合一个个关键的数据库问题触发,分析数据库原理并给出实践指导)。


沉默王二's avatar
沉默王二 已提交
201
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-5338019d-a197-4438-8c0e-934a45794d91.png)
沉默王二's avatar
沉默王二 已提交
202

沉默王二's avatar
沉默王二 已提交
203
>星球同学可以到星球的百度网盘里取,地址在《Java程序员进阶之路》知识星球的[置顶链接](https://t.zsxq.com/07N3NbmEe)里。
沉默王二's avatar
沉默王二 已提交
204 205 206 207 208 209 210 211 212 213

学完以上这些,MySQL 的能力基本上会有质的飞跃,也就会有一种豁然开朗的感觉。当然,这部分学习起来十分吃力,主要是很多内容没有实际的应用场景。但最起码有个印象,万一用到了,再系统的翻翻书,看看网上的案例就会好很多。

有备无患嘛。

### 官方文档

英文能力比较强的球友,可以试读一下 [MySQL 的官方文档](https://dev.mysql.com/doc/)


沉默王二's avatar
沉默王二 已提交
214
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-eb464848-e5d9-4611-8b32-2fe799e7ca68.png)
沉默王二's avatar
沉默王二 已提交
215 216 217 218 219 220 221 222 223 224 225 226 227


## 第三阶段:面试突击/实战运用

学习可以是功利性质的(当然也可以是因为纯粹的热爱),如果不是为了高薪,我们又何苦学这么多呢?

那既然学了 MySQL,就要检验学习成果,怎么检验呢?

准备面试的同学可以刷一波《[面渣逆袭 MySQL 篇](https://tobebetterjavaer.com/sidebar/sanfene/mysql.html)》,准备和面试官来回拉扯哈。

星球用户可以在星球的[知识图谱](https://t.zsxq.com/04FuZrRVf)里获取 PDF 版本。


沉默王二's avatar
沉默王二 已提交
228
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xuexiluxian/mysql-2aecc2a4-febb-4403-a4ce-d5656c879d3b.png)
沉默王二's avatar
沉默王二 已提交
229 230 231 232 233 234 235 236 237


准备升职加薪/跳槽的同学,那就一定要在实际的工作当中加以运用,不然很可能学完一段时间就忘记了。


----

最近整理了一份牛逼的学习资料,包括但不限于Java基础部分(JVM、Java集合框架、多线程),还囊括了 **数据库、计算机网络、算法与数据结构、设计模式、框架类Spring、Netty、微服务(Dubbo,消息队列) 网关** 等等等等……详情戳:[可以说是2022年全网最全的学习和找工作的PDF资源了](https://tobebetterjavaer.com/pdf/programmer-111.html)

沉默王二's avatar
沉默王二 已提交
238
微信搜 **沉默王二** 或扫描下方二维码关注二哥的原创公众号沉默王二,回复 **111** 即可免费领取。
沉默王二's avatar
沉默王二 已提交
239

沉默王二's avatar
沉默王二 已提交
240
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongzhonghao.png)
沉默王二's avatar
沉默王二 已提交
241