MySQL面试必须掌握的 8 个知识点

  我觉得获得高薪的关键:就是高效的准备面试。如果当初有个人能给我一份总结好的面试锦囊,我就不至于慌成那样。
 
  对于程序员来说,面试内容一般分为两个部分:编程面试题部分+数据库面试题部分。
 
  据不完全调查,作为数据库中的主流选择MySQL的薪资待遇正在逐年增加,而且似乎不仅仅是程序员在学,就连很多产品经理和运营人也开始学习MySQL去分析数据。
 
△图来自猎聘网
 
  为了让大家能避开国仔面试时的苦恼,我们特意邀请到两位有着10年工作经验的技术老兵,前前后后大概花了三个多月的时间,改了6个版本,最终形成了这套MySQL面试题,来帮助准备面试的朋友们。
 
  内容介绍
 
  对于技术面试来说,考察的核心包含以下两个特点:
 
  考察的知识点广,因为不同的公司和不同的面试官技能知识结构是不同的,所以所关注的问题和面试内容也是不同的,所以具备面试知识点广的特点;
 
  考察的知识点较深入,以阿里巴巴为例,这些大厂的面试都是类似的,通常从一个大的面试点切入,然后层层深入,直到问到你不会为止,比如,你了解哪些数据库引擎?这个数据库引擎的特点是什么?这个数据库引擎是如何存储数据的?为什么要采用这种存储方式?等等。
 
  所以针对以上两个问题,作者结合自己10余年的工作和面试的经验,经过讨论和修改,最终制定了八大模块,汇总并介绍MySQL中的典型面试问题,它包含的内容如下。
 
  第一部分:通用模块。此部分对MySQL整体概念、执行流程、数据库引擎、查询缓存、表空间、回表查询、数据类型间的区别、内存表、临时表、删除表的n种方式、枚举、视图、数据恢复等相关知识点对应的面试题进行解答。
 
  第二部分:索引模块。索引的好坏直接影响数据库的性能,所以索引的面试题也是面试中必问的问题,此部分为索引对应的面试题合集。
 
  第三部分:事务模块。事务决定了程序的稳定性,在MySQL中的地位也是首屈一指,也是面试中必问的面试题,此部分为事务对应的面试题合集。
 
  第四部分:锁。锁包括:全局锁、表锁、行锁、死锁、乐观锁、悲观锁等,不同的数据库引擎支持的锁支持粒度也是不同的,此部分的面试题,让你彻底搞定锁相关的面试题。
 
  第五部分:日志。日志看似不起眼,却是MySQL主备同步和容灾恢复以及问题排除的关键,当然也是面试中必问的问题,这部分会对不同的数据库引擎中的重点日志,进行详细的介绍。
 
  第六部分:MySQL操作命令和内置函数。MySQL的操作命令,对于程序员或者DBA来说也是必须具备的一项技能,比如,用户和权限的创建、数据库相关信息的查询等,都离不开对MySQL命令行的掌握。对内置函数的掌握程度,代表了你对MySQL的掌握程度,善用MySQL提供的内置函数,会让你有事半功倍的效果,内置函数也是笔试中必考的面试题。
 
  第七部分:性能优化和分布式。性能优化和分布式是面试中决定你高度的关键指标,其中性能优化包括了慢查询的分析和处理,对分布式的掌握体现了你的技术深度。
 
  第八部分:开放性问题。很多大公司最后也会问一下没有标准答案的开放性问题,以考察面试者的技术能力边界和对待问题的分析思路,这部分助你更平稳的获得offer。