Skip to main content

MySQL实战45讲

MySQL 使用和面试中遇到的问题,很多人会通过搜索别人的经验来解决 ,零散不成体系。实际上只要理解了 MySQL 的底层工作原理,就能很快地直戳问题的本质。

本专栏一共 45 讲,全集更新完毕,通过探讨 MySQL 实战中最常见的 36 个 痛点问题,串起各个零散的知识点,配合 100+ 手绘详解图,由线到面带你构建 MySQL 系统的学习路径。

在专栏中,丁奇结合自己十多年来,通过 MySQL 源码找答案的经历,梳理了 MySQL 的主线知识,比如事务、索引、锁等;并基于这条主线,带你缕清概念、机制、原理、案例分析以及本质,让你真正能掌握 MySQL 核心技术与底层原理。

值得一提的是,每篇文章中都附有实践案例,给你从理论到实战的系统性指导,让你少走弯路,彻底搞懂 MySQL。

本课程共包括两大模块。

模块一,基础篇。为你深入浅出地讲述 MySQL 核心知识,涵盖 MySQL 基础架构、日志系统、事务隔离、锁等内容。

模块二,实践篇。将从一个个关键的数据库问题出发,分析数据库原理,并给出实践指导。每个问题,都不只是简单地给出答案,而是从为什么要这么想、到底该怎样做出发,让你能够知其所以然,都将能够解决你平时工作中的一个疑惑点。

目录

基础篇

  1. 开篇词-这一次,让我们一起来搞懂MySQL
  2. 01-基础架构:一条SQL查询语句是如何执行的?
  3. 02-日志系统:一条SQL更新语句是如何执行的?
  4. 03-事务隔离:为什么你改了我还看不见?
  5. 04-深入浅出索引(上)
  6. 05-深入浅出索引(下)
  7. 06-全局锁和表锁:给表加个字段怎么有这么多阻碍?
  8. 07-行锁功过:怎么减少行锁对性能的影响?
  9. 08-事务到底是隔离的还是不隔离的?

实践篇

  1. 09-普通索引和唯一索引,应该怎么选择?
  2. 10-MySQL为什么有时候会选错索引?
  3. 11-怎么给字符串字段加索引?
  4. 12-为什么我的MySQL会"抖"一下?
  5. 13-为什么表数据删掉一半,表文件大小不变?
  6. 14-count(*)这么慢,我该怎么办?
  7. 15-答疑文章(一):日志和索引相关问题
  8. 16-order by是怎么工作的?
  9. 17-如何正确地显示随机消息?
  10. 18-为什么这些SQL语句逻辑相同,性能却差异巨大?
  11. 19-为什么我只查一行的语句,也执行这么慢?
  12. 20-幻读是什么,幻读有什么问题?
  13. 21-为什么我只改一行的语句,锁这么多?
  14. 22-MySQL有哪些"饮鸩止渴"提高性能的方法?
  15. 23-MySQL是怎么保证数据不丢的?
  16. 24-MySQL是怎么保证主备一致的?
  17. 25-MySQL是怎么保证高可用的?
  18. 26-备库为什么会延迟好几个小时?
  19. 27-主库出问题了,从库怎么办?
  20. 28-读写分离有哪些坑?
  21. 29-如何判断一个数据库是不是出问题了?
  22. 30-答疑文章(二):用动态的观点看加锁
  23. 31-误删数据后除了跑路,还能怎么办?
  24. 32-为什么还有kill不掉的语句?
  25. 33-我查这么多数据,会不会把数据库内存打爆?
  26. 34-到底可不可以使用join?
  27. 35-join语句怎么优化?
  28. 36-为什么临时表可以重名?
  29. 37-什么时候会使用内部临时表?
  30. 38-都说InnoDB好,那还要不要使用Memory引擎?
  31. 39-自增主键为什么不是连续的?
  32. 40-insert语句的锁为什么这么多?
  33. 41-怎么最快地复制一张表?
  34. 42-grant之后要跟着flush privileges吗?
  35. 43-要不要使用分区表?
  36. 44-答疑文章(三):说一说这些好问题
  37. 45-自增id用完怎么办?

补充内容