你好,我是田哥
最近有不少人找我聊如何准备面试,其中有个点是大家都无从下手的问题。
这个问题估计是困扰了很多人,最可怕的是都没有想到什么好点办法。
下面来说说个人的想法(仅供参考)。
我该怎么准备?这个话题太大了,我总结了下面2个问题(以MySQL为例):
MySQL掌握的怎么样?
工作几年了?(不同年限要求不一样)
MySQL掌握的怎么样?
关于这个问题,你又得知道MySQL有些什么内容?
下面是我给大家整理的MySQL核心知识点:
序号 | 核心点 | 难易程度 |
---|---|---|
1 | 常用函数 | 一般 |
2 | 常用关键字 | 重点 |
3 | MySQL架构 | 重点 |
4 | B+树 | 重点 |
5 | 索引类型 | 重点 |
6 | 各种索引的作用以及区别 | 重点 |
7 | 最左匹配原则 | 重点 |
8 | explain关键字 | 重点 |
9 | 慢查询 | 重点 |
10 | 什么场景需要建索引 | 重点 |
11 | 什么场景容易导致索引失效 | 重点 |
12 | 事务是什么 | 重点 |
13 | 事务的四大特性 | 重点 |
14 | MySQL中ACID是如何实现的 | 重点 |
15 | 事务的隔离级别 | 重点 |
16 | 脏读、幻读、不可重复度 | 重点 |
17 | MySQL的锁 | 重点 |
18 | 记录锁、间隙锁、临键锁 | 重点 |
19 | MCVV | 重点 |
20 | bin log、redo log、undo log | 重点 |
21 | MySQL数据库优化 | 重点 |
22 | 主从延迟 | 重点 |
23 | 分库分表 | 重点 |
以上只是简单的罗列一下MySQL中核心知识点,如果你对MySQL掌握不错,或许复习起来就很快。反之,每一个都是硬骨头,随便抓几个就够喝一壶了。
上面的表格内容可以自行扩展,比如加状态:待学习、学习中、已学
可能你会问,你写了这个有什么用?
不着急,我写出来的目的是让你知道你觉得上面这些知识认识不?如果面试官问相关的能答上来吗?
如果不行,请继续往下看。
现在已经是11月中旬,也就意味着年底将至,所以,我不太建议这时候换工作(如果待业的,不建议现在找工作,还不如好好准备,年后再找)。
从现在到明年3月份,差不多3、4个月的时间好好准备一番。
回到上面的话题,有了MySQL的核心知识点,我们可以按照自身对MySQL的掌握情况来进行查漏补缺。
把自己的知识体系化,别看这几个月没有什么收入,但是你知识体系化了,往后再面试就so easy!
如何形成知识体系化
1、用好思维导图、流程图:先化纲要(核心知识点),然后再逐步细分知识点。
2、写博客,按照上一做的细分知识点后,对每个知识点进行逐个深挖。
比如我的博客https://www.woaijava.cc/:
如果坚持不了,如果不愿去落地,那就免谈了,毕竟人总是会分出三六九等。
重点面试题
每个模块的面试题不一样,这里我给大家整理了MySQL重点面试题。
B树、红黑树、B+树有什么区别?
为什么使用B+树来作为MySQL的索引数据结构?
什么是索引?索引类型有哪些?
什么时候需要建索引?
哪些场景会导致索引失效?
聚集索引和非聚集索引有什么区别?
你知道哪些存储引擎有?
什么是最左匹配原则?
什么是覆盖索引?
如何判断SQL是否用到了某个索引?
什么是事务?事务的特性有哪些?
MySQL中有哪些日志文件?
在MySQL中,ACID是如何实现的?
说说MVCC原理
什么是脏读?什么是幻读?什么是不可能重复度?脏读和幻读有什么区别?
MySQL是如何解决幻读的?
事务隔离级别有哪些?
你知道哪些SQL优化方法?
MySQL中有哪些锁?
怎么排查慢查询?
MySQL主从架构有什么优缺点?
说说你对分库分表的理解
这里整理了22道题,随便抓几个就够喝一壶了。
如果你觉得上面题目很简单,那就感觉换个其他技术看看,比如并发编程、JVM、Spring 源码等。
纸上得来终觉浅,绝知此事要躬行。
铁子,加油!
下面是我之前发过的MySQL相关文章:
MySQL 开发规范,非常详细,建议收藏!
最详细的 MySQL 执行计划和索引优化!
面试不问java,问MySQL,如何破局?
3w月薪:MySQL核心知识点
MySQL这些底层执行原理,早已成必备了!
MySQL教程的天花板,收藏好,慢慢看
MySQL慢查询之慢 SQL 定位、日志分析与优化方案
面试官:MySQL 是如何实现 ACID 的?
看完这篇还不懂 MySQL 主从复制,可以回家躺平了~
程序员必备 4 款 MySQL 调优工具