微信号:JavaCoder1024

介绍:关注语言编程Java,分享、交流Java编程技巧和信息

面试考MySQL性能优化,一个问题就干趴下了!

2019-04-10 09:08 Java编程

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存储引擎之死锁原理分析

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


长按添加微信

领取干货视频

大家领到之后一定要花时间看完。信息爆炸的时代,我们不仅缺少真正优质的资源,更缺少静坐下来学习的心态。

这套视频由"开课吧"友情提供,大家熟知的IT技术大牛廖雪峰已加盟开课吧,针对1-5年和5年以上Java开发者的特点,耗时半年研发了精品付费课程——《Java高级架构师》和《百万年薪架构师》,来帮助Java开发者实现全方位进阶课程深度对标百度T6--T7,适合有开发经验的程序员们学习。

对课程感兴趣也可以加微信了解。

 
Java编程 更多文章 Java的几个坑,重复造轮子的事你有做过吗? 谈谈线上CPU100%排查套路 一文带你轻松搞懂事务隔离级别(图文详解) 为什么我不建议你买保险?陷阱是什么? 【面试】足够应付面试的Spring事务源码阅读梳理(建议珍藏)
猜您喜欢 WSC“创+”微生态思想汇 八月武汉、广州、上海三城火热报名中 Rails Weekly: 2015/07/20 深入理解MySQL 5.7 GTID系列(十):实际案例二 TiDB 2.0 RC1 Release 基于风险的测试过程管理