MySQL作为最流行的关系型数据库管理系统,重要性不言而喻。面试时它也是重点考察对象之一,估计大家都有过被MySQL相关问题支配的经历:

如何理解MySQL中加锁原理以及最终死锁形成的原因 ?

介绍一下连接池的工作方式,为什么 mysql 的连接数说爆就爆了? 

简洁描述下 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

说一下隔离级别的语义,必须使用事务的话绕不开,为什么同样的代码,迁移到 RDS 后行为会不一致? 

上面几个问题,你能全部答出来吗?

其实,无论是后端程序员、前端程序员,还是架构师,数据库是所有开发人员需要面对的共性部分。大家工作项目中的性能问题,容易出现瓶颈的地方常常是MySQL这块,用好它对于整体项目性能提升会有很大帮助。可以说MySQL掌握的越深入,你能做的事情就越多。

有些人觉得自己花了不少精力去学如何做MySQL性能优化,但进展不快,很可能忽视了这点:有了性能分析的技术储备,才能更好掌握性能优化。最近我整理了一套MySQL视频,由浅及深讲了MySQL性能分析 + 性能优化,内容很细,基本覆盖了大家日常工作中经常碰到的一些问题,有必要共享给读者。

具体有哪些细节内容?

【 MySQL执行计划查看、索引失效分析、加锁分析 】

1. 索引优化之组合索引的使用技巧

组合索引、最左前缀原则

2. explain执行计划重要参数select_type讲解

MySQL优化器、子查询、联合查询、临时表

3. explain执行计划重要参数type讲解

MySQL优化器、主键索引、唯一索引、非唯一索引、组合索引、索引覆盖

4. explain执行计划重要参数extra讲解

MySQL优化器、索引覆盖、文件排序、ICP

5. 索引失效案例分析

组合索引、最左前缀原则、索引覆盖

【 MySQL锁和事务篇 】

1. InnoDB存储引擎内存结构之Buffer Pool

InnoDB的架构图、InnoDB内存结构和物理文件之间的工作关系、数据页、索引页

2. InnoDB存储引擎内存结构之Redo Log Buffer

InnoDB的架构图、Redo log工作原理和落盘原理

3. InnoDB存储引擎物理文件之系统表空间和用户表空间文件

InnoDB的架构图、系统表空间文件和用户表空间文件

4. InnoDB存储引擎物理文件之重做日志文件和归档文件

InnoDB的架构图、重做日志文件、重做日志缓冲

5. InnoDB存储引擎之重做日志落盘机制

InnoDB的架构图、落盘机制、WAL(Write ahead redo log)、Force-log-at-commit、checkpoint机制

6. InnoDB存储引擎事务原理之原子性、持久性和一致性实现

redo log、undo log和Force Log at Commit机制、checkpoint机制

7. InnoDB存储引擎事务原理之隔离性实现

MVCC、Lock-based CC、一致性非锁定读(consistent nonlocking read)、快照读&当前读

8. InnoDB存储引擎之一条简单SQL的行锁加锁实现分析

record lock、gap lock、next key lock、RR和RC隔离级别、MVCC机制、主键索引、辅助索引

9. InnoDB存储引擎之一条复杂SQL的行锁加锁实现分析

record lock、gap lock、next key lock、RR和RC隔离级别、MVCC机制、主键索引、辅助索引

10. InnoDB存储引擎之死锁原理分析

主键索引、辅助索引、死锁