我写这篇文章的目的只有一个:通过这些问题来帮助我去将我脑子里的MySQL脑图给巩固熟悉,通过回答这些问题,让我对脑子里的MySQL知识有更深的印象,当什么时候我的MySQL脑图不熟的时候,我就可以拿这篇文章来去巩固一下,或者每天巩固一下都行。
索引
索引底层实现问题
这部分面试好像问的挺多的,我看很多网上的帖子的面经都会包含这方面的问题,感觉索引底层实现是问的最多的了,所以我觉得这部分要掌握的好的话,应该需要对常见数据结构要了解,这样才能信手拈来。:
1、介绍一下 mysql 索引?
2、为什么索引要采用 B+ 树?用其他数据结构不可以吗?比如哈希表,B树,红黑树(指导:主要从支持范围查找+减少磁盘操作+树的查找速度快 这几个方面说)
3、刚才说到了 B 树,B 树和 B+ 树的主要区别是什么?可以讲一讲 B 树的应用场景吗?
这三个问题,用一篇文章就能解决:谈谈 MySQL 的索引-CSDN博客
索引优化相关问题
1、字段加索引,你是否在自己的项目中用过呢?你觉得什么样的字段适合加索引?
字段加索引在项目用过吗?商品信息表(商品ID,商品名称,商品价格,商品库存)
什么字段适合加索引?从索引区分度,查找频率真,增删频繁角度考虑
2、mysql怎么创建索引?
对于普通索引和联合索引,都是 CREATE INDEX 索引名 ON 表名(列名, ...)
3、那你觉得,字段加了索引,查找的时候一定会走索引吗?
从优化器选错索引来谈
4、如果我想要强制走某个索引,能实现吗?可以怎么做?
使用 force index 语句
5、如何一条 sql 执行的很慢,我们可以怎么来排查原因?
索引分类相关问题
1、介绍一下索引的分类,以及他们的主要区别是什么?
2、介绍一下什么是复合索引?什么样的情况下我们会使用复合索引?
3、覆盖索引是什么意思呢?
4、我们有时候会听到索引下推,你知道什么是索引下推吗?
看不懂来骂我系列:主键索引、普通索引、覆盖索引、回表、联合索引、最左前缀_覆盖索引和主键索引的区别-CSDN博客
锁
锁相关问题
1、mysql 有哪些锁,介绍一下?
日志
日志相关问题
1、介绍一下 binlog 和 redo log,他们两有啥区别?
2、两阶段提交了解吗?介绍一下,为啥需要两阶段提交呢?
结合一条语句在MySQL中是如何执行的来回答
3、幻读了解吗?介绍一下,innodb引擎是如何解决幻读问题等?
事务
事务基础问题
1、你是怎么理解事务的?(定义+事务的四大特性来解释)
总结
当然还有一些问题,但是我觉得这些问题好像就挺多的了,而且说实话我写这篇文章的目的就是想通过这些问题巩固我的MySQL脑图,这些问题已经足够覆盖到我脑图中的所有知识了,所以我没必要给自己加难度了。