宝贝介绍
你将获得
- 前阿里资深技术专家独家经验分享;
- MySQL 核心技术详解与原理说明;
- 36 个 MySQL 常见痛点问题解析;
- 完整的 MySQL 学习路径。
讲师介绍
林晓斌,网名「丁奇」,前阿里资深技术专家,曾负责阿里云 RDS 内核开发团队和运维团队,并推动了 AliSQL 分支开源。作为活跃的 MySQL 社区贡献者,丁奇专注于数据存储系统、MySQL 源码研究和改进、MySQL 性能优化和功能改进,热衷于解决 MySQL 疑难问题。
课程介绍
数据库是一个综合系统,其背后是发展了几十年的数据库理论。也许你会觉得数据库并不难,因为你可以熟练地写出 SQL,也可以在各个客户端里玩得游刃有余。但就以最常见的 MySQL 为例,作为程序员,你在使用 MySQL 的过程中,是不是曾经遇到过类似的问题:
- 为什么我的 count(*) 这么慢?
- 为什么我建了索引,却根本没有效果?
- 为什么我只查一行的语句,也执行这么慢?
- MySQL 对于大表要怎么优化?
之前,你大概都是通过搜索别人的经验来解决问题。你有没有想过,如果能够理解 MySQL 的工作原理,那么在遇到问题的时候,是不是就能更快地直戳问题的本质?比如说,知道了索引的实现原理,那遇到索引问题的时候,你是不是就能从原理的角度,推断可能的解决方案?
本课程将会以实战中的常见问题为切入点,带你剖析现象背后的本质原因。更重要的是,本课程还将通过几条主线为你串起各个零散的知识点,再由线到面带你构建 MySQL 知识体系。
在这个课程里,丁奇将会结合自己十多年来通过 MySQL 源码找答案的经历,和你分享一条高效的学习路径,旨在给你一个从理论到实战的系统性指导,让你少走弯路,彻底搞懂 MySQL。
本课程共包括两大模块。
模块一,基础篇
为你深入浅出地讲述 MySQL 核心知识,涵盖 MySQL 基础架构、日志系统、事务隔离、锁等内容。
模块二,实践篇
将从一个个关键的数据库问题出发,分析数据库原理,并给出实践指导。每个问题,都不只是简单地给出答案,而是从为什么要这么想、到底该怎样做出发,让你能够知其所以然,都将能够解决你平时工作中的一个疑惑点。
课程目录
开篇词 (1 讲)
开篇词 | 这一次,让我们一起来搞懂 MySQL
基础篇 (8 讲)
01 | 基础架构:一条 SQL 查询语句是如何执行的?
02 | 日志系统:一条 SQL 更新语句是如何执行的?
03 | 事务隔离:为什么你改了我还看不见?
04 | 深入浅出索引 (上)
05 | 深入浅出索引 (下)
06 | 全局锁和表锁 :给表加个字段怎么有这么多阻碍?
07 | 行锁功过:怎么减少行锁对性能的影响?
08 | 事务到底是隔离的还是不隔离的?
实践篇 (37 讲)
09 | 普通索引和唯一索引,应该怎么选择?
10 | MySQL 为什么有时候会选错索引?
11 | 怎么给字符串字段加索引?
12 | 为什么我的 MySQL 会 「抖」 一下?
13 | 为什么表数据删掉一半,表文件大小不变?
14 | count(*) 这么慢,我该怎么办?
15 | 答疑文章 (一):日志和索引相关问题
16 |「order by」是怎么工作的?
17 | 如何正确地显示随机消息?
18 | 为什么这些 SQL 语句逻辑相同,性能却差异巨大?
19 | 为什么我只查一行的语句,也执行这么慢?
20 | 幻读是什么,幻读有什么问题?
21 | 为什么我只改一行的语句,锁这么多?
22 | MySQL 有哪些「饮鸩止渴」提高性能的方法?
23 | MySQL 是怎么保证数据不丢的?
24 | MySQL 是怎么保证主备一致的?
25 | MySQL 是怎么保证高可用的?
26 | 备库为什么会延迟好几个小时?
27 | 主库出问题了,从库怎么办?
28 | 读写分离有哪些坑?
29 | 如何判断一个数据库是不是出问题了?
30 | 答疑文章 (二):用动态的观点看加锁
31 | 误删数据后除了跑路,还能怎么办?
32 | 为什么还有 kill 不掉的语句?
33 | 我查这么多数据,会不会把数据库内存打爆?
34 | 到底可不可以使用 join?
35 | join 语句怎么优化?
36 | 为什么临时表可以重名?
37 | 什么时候会使用内部临时表?
38 | 都说 InnoDB 好,那还要不要使用 Memory 引擎?
39 | 自增主键为什么不是连续的?
40 | insert 语句的锁为什么这么多?
41 | 怎么最快地复制一张表?
42 | grant 之后要跟着 flush privileges 吗?
43 | 要不要使用分区表?
44 | 答疑文章 (三):说一说这些好问题
45 | 自增 id 用完怎么办?
特别放送 (1 讲)
直播回顾 | 林晓斌:我的 MySQL 心路历程
结束语 (1 讲)
结束语 | 点线网面,一起构建 MySQL 知识网络
结课测试 (1 讲)
结课测试|这些 MySQL 知识你都掌握了吗?
注册向导
当你收到授权后,可以通过以下步骤兑换课程:
网页版兑换过程请按照以下步骤操作:
一、通过下方链接地址访问官方兑换网站:
https://time.geekbang.org/service/exchange
二、进入官网后,点击网页右上角的「登陆」按钮:
-
三、在转跳的网页中,任选一种登陆方式登陆账号,
-
四、在转跳的网页中,输入「兑换码 > 验证码」点击「立即验证」即可解锁全部课程。
-
手机版兑换过程请按照以下步骤操作:
一、打开「极客时间」官方 App,依次点击菜单栏「我的 > 点击登陆 > 登陆账号」按钮:
-
二、登陆后返回首页,依次点击「我的 > 兑换中心 > 立即兑换」按钮:
-
三、在弹出的窗口中,输入「兑换码」点击「立即验证」即可解锁全部课程。
-
常见问题
如果你在使用过程中遇到问题,可访问以下链接,前往我们的官方网站查看常见问题的解决方案。