MySQL实战45讲
MySQL 使用和面试中遇到的问题,很多人会通过搜索别人的经验来解决 ,零散不成体系。实际上只要理解了 MySQL 的底层工作原理,就能很快地直戳问题的本质。
本专栏一共 45 讲,全集更新完毕,通过探讨 MySQL 实战中最常见的 36 个 痛点问题,串起各个零散的知识点,配合 100+ 手绘详解图,由线到面带你构建 MySQL 系统的学习路径。
在专栏中,丁奇结合自己十多年来,通过 MySQL 源码找答案的经历,梳理了 MySQL 的主线知识,比如事务、索引、锁等;并基于这条主线,带你缕清概念、机制、原理、案例分析以及本质,让你真正能掌握 MySQL 核心技术与底层原理。
值得一提的是,每篇文章中都附有实践案例,给你从理论到实战的系统性指导,让你少走弯路,彻底搞懂 MySQL。
本课程共包括两大模块。
模块一,基础篇。为你深入浅出地讲述 MySQL 核心知识,涵盖 MySQL 基础架构、日志系统、事务隔离、锁等内容。
模块二,实践篇。将从一个个关键的数据库问题出发,分析数据库原理,并给出实践指导。每个问题,都不只是简单地给出答案,而是从为什么要这么想、到底该怎样做出发,让你能够知其所以然,都将能够解决你平时工作中的一个疑惑点。
目录
基础篇
- 开篇词-这一次,让我们一起来搞懂MySQL
- 01-基础架构:一条SQL查询语句是如何执行的?
- 02-日志系统:一条SQL更新语句是如何执行 的?
- 03-事务隔离:为什么你改了我还看不见?
- 04-深入浅出索引(上)
- 05-深入浅出索引(下)
- 06-全局锁和表锁:给表加个字段怎么有这么多阻碍?
- 07-行锁功过:怎么减少行锁对性能的影响?
- 08-事务到底是隔离的还是不隔离的?
实践篇
- 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用完怎么办?