MySQL DBA面试全揭秘

本文由MySQL中文网原创,“MySQL中文”公众号是 http://imysql.com 的官方唯一公众号,微信首发。
欢迎关注“MySQL中文”公众号(ID: imysql_wx),我们会不定期推送MySQL相关原创干货。

本文起源于有同学留言回复说想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧。

MySQL DBA职位最近几年特别热门,不少朋友让我帮忙推荐什么的,也有很多公司找不到合适的DBA。原因很简单,优秀的人才要么被大公司圈起来了,要么被创业公司高薪挖走,如果你既不是大公司,又不能出得起高价钱的土豪公司,想要找到优秀人才的几率堪比买彩票中奖的概率,哈哈。

本文可以作为MySQL DBA面试官,以及候选人的双向参考 :)

面试流程

接下来先说下我以往在做MySQL DBA面试时的过程(套路):

1.先自我介绍后,再让候选人花2-5分钟做下自我简介

有不少人可能对自我简介这个环节嗤之以鼻,觉得多此一举,尤其是技术能力相对较好的更是如此。其实不然,通过短短2-5分钟的自我简介,很快就能考察出候选人是否有用心准备本次面试,其归纳总结能力,以及个人自信心等多方面信息。
因此,如果候选人看中这次面试机会的话,还请好好做下功课,做足准备。比如了解下目标公司的大致情况,主营业务,产品特色。可能的话,找同行打听可能的面试官背景信息,没准是校友、以前在同一家公司呆过、或者有其他共同点,这可能会使得面试过程更为顺利。
有心的候选人在面试官自我介绍时,就可以趁机也考察对方的情况。通常第一轮面试官很可能是你未来的直接主管,从面试过程中你和对方的沟通交流是否顺利也可预见到未来工作上配合的顺利程度。
2.暖身完,就开始进入主题,从候选人的简历入手,挑选其中感兴趣的关键点逐条交流,有几个要点:

和应聘职位关联性较高的技术要素,需要逐个过一遍,大致了解候选人对于这些技术要素的掌握程度;
挑选2-3个技术关键点,对候选人穷追猛打深入探讨,了解其真正的掌握程度,是泛泛的了解,还是知其所以然的那种,由此也可以考察候选人的学习方法、心态,是随波逐流抑或专精专注。
候选人每次跳槽经历也需要关注,究竟何种原因导致跳槽,每次跳槽是否其职业层次也跟着提高。由此考擦候选人的职业规划是否清晰,是否过于随性(任性)。否则的话,可能在下一家公司也待不了多久就会因为各种原因(最常见的就是薪资、或者对主管不服气)而跳槽。
候选人简历中特意提及的重点项目、事件、荣誉,也可以做深入的交流。
3.重点技术要素考察完毕,可以聊聊职业发展等其他方面的话题,比如

为什么选择我司;
如果还有其他公司的机会,如何权衡选择哪个offer,最主要的判断标准是什么;
期望什么样的工作环境,团队环境,以及哪种风格的主管;
对什么事情最在乎,或最不在乎;
除了薪资福利,对公司、工作的期望是怎样的。
专业技术考察

具体到技术实力考查上,通常可以关注几个要点:

基础知识考察

基础知识,尤其是一些理论知识,例如:
MySQL有哪些索引类型,这是个半开放式命题;
从数据结构角度可分为B+树索引、哈希索引、以及不常用的FULLTEXT索引(现在MyISAM和InnoDB引擎都支持了)和R-Tree索引(用于对GIS数据类型创建SPATIAL索引);
从物理存储角度可分为聚集索引(clustered index)、非聚集索引(non-clustered index);
从逻辑角度可分为主键索引、普通索引,或者单列索引、多列索引、唯一索引、非唯一索引等等。需要掌握这些不同概念之间的区别,例如主键索引和唯一索引的区别是什么。
为什么InnoDB表最好要有自增列做主键;
为什么需要设置双1才能保证主从数据的一致性;
有几种binlog格式*,及其区别是什么;
如何确认MySQL replication真正的复制延迟是多少;
有过哪些印象深刻的实践经验。
通过考察候选人的基础知识掌握程度,可侧面反映候选人对学习的态度,是否仅浅层面的了解。

核心技术能力考察

核心关键技术能力,例如:
怎么做的MySQL备份恢复方案及策略,为什么那么做,用什么工具;
MySQL主从复制的具体原理是什么,实际使用过程中,遇到过哪些坑,怎么解决的;
对一个大表做在线DDL,怎么进行实施的才能尽可能降低影响;
MyISAM和InnoDB都有哪些不同之处;
InnoDB的体系结构是否能讲的清楚,至少说出个大概;
假设现在服务器负载很高,都有哪些性能问题排查思路,以及优化的方案;
什么是死锁,什么是锁等待,如何优化;
关于MySQL及InnoDB优化,讲讲自己的见解或者实践经验;
如何确定及实施MySQL高可用方案,不同方案的优缺点对比;
一定规模的MySQL自动化运维经验如何;
在SCHEMA设计方面的经验如何;
基于MySQL所做过的一些数据库架构方案设计、实施经验。
通过考察候选人对这些核心关键技术的掌握程度,可知晓候选人对深层次知识的掌握情况,除了实践,理论方面掌握了多少。

潜力考察

发展潜力以及学习能力,例如:
对Linux的掌握程度,以及Shell、Python、Perl等常用运维开发语言的掌握程度;
对服务器硬件设备,存储设备的了解程度;
对信息安全,网络知识的了解程度;
其他语言,例如C、C++、JAVA、PHP、GO是否有所了解。
这些知识对一般的DBA可能不太重要,但想要成为资深DBA或数据库架构师的话,这些知识是必不可少的。

先啰嗦说这么多吧,希望对有志成为DBA的同学有些帮助,加油加油(^ω^)

文章转自老叶茶馆公众号,原文链接:https://mp.weixin.qq.com/s/A6YxbHpeX6xetOXLJSwszA

时间: 2024-10-06 05:05:31

MySQL DBA面试全揭秘的相关文章

MySQL DBA 面试全揭秘

本文起源于有同学留言回复说想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧. MySQL DBA职位最近几年特别热门,不少朋友让我帮忙推荐什么的,也有很多公司找不到合适的DBA.原因很简单,优秀的人才要么被大公司圈起来了,要么被创业公司高薪挖走,如果你既不是大公司,又不能出得起高价钱的土豪公司,想要找到优秀人才的几率堪比买彩票中奖的概率,哈哈. 本文可以作为MySQL DBA面试官,以及候选人的双向参考 :) 面试流程 接下来先说下我以往在做MySQL DBA面试时

MySQL DBA技术难度低为什么工资比Oracle高?

编辑手记:前几天在知乎上出现了一个很热的帖子,话题是"MySQL DBA技术难度低为什么工资比oracle高?",这个话题很快引起了热烈的讨论.从回帖的情况来看,大部分人几乎都默认了MySQL DBA工资的确高这个事实,那么原因是什么,我们节选MySQL专家刘伟的回帖跟大家分享. 以下是他回帖的原文: 主要有以下两个原因: 1.市场供需关系 2.技术要求相对高 这两个因素一直没有得到改善,导致现在市场的行情是:招MySQL DBA难,招称心的MySQL DBA就更难. 先说一个工资议价

《MySQL DBA修炼之道》——3.5 索引

3.5 索引 3.5.1 索引介绍 数据库索引,是数据库管理系统中一个排序的数据结构,用于协助快速查询.更新数据库表中的数据.它类似于书本上的索引,通过索引可以更便捷地找到书里面的内容而不需要查阅整本书.对于海量数据的检索,索引往往是最有效的. 目前MySQL主要支持的几种索引有:B树索引(B-tree).散列索引(hash).空间索引(R-tree)和全文索引(full-text).如果没有特别指明,本书指的就是B-Tree索引.由于索引是在存储引擎层实现的,所以不同的存储引擎的索引实现会有一

明明技术难度更低,为何MySQL DBA工资比Oracle高?

前几天在知乎上出现了一个很热的帖子,话题是"MySQL DBA技术难度低为什么工资比oracle高?",这个话题很快引起了热烈的讨论.从回帖的情况来看,大部分人几乎都默认了MySQL DBA工资的确高这个事实,那么原因是什么,我们节选MySQL专家刘伟的回帖跟大家分享.以下是他回帖的原文: 原因分析 主要有以下两个原因: 市场供需关系 技术要求相对高 这两个因素一直没有得到改善,导致现在市场的行情是:招MySQL DBA难,招称心的MySQL DBA就更难.先说一个工资议价的常识,工资

FAQ系列 | MySQL DBA修炼秘籍

0.导读 本文主要写给那些立志成为MySQL DBA,以及正在学习MySQL的同行们,结合个人及业内其他同行的职业发展经历给大家一些参考,如何成为合格的MySQL DBA. 1.什么是MySQL DBA 首先,DBA是database administrator(数据库管理员)的简称,在一些招聘网站上,也可能会把职位写成数据库[管理]工程师,MySQL DBA是目前互联网企业中最为炙手可热的岗位需求之一,前(钱)景大好,快到碗里来吧. 下面是拉勾网的MySQL DBA招聘需求(若无"MySQL中

给linux用户的11个高级MySQL数据库面试问题和答案

给linux用户的11个高级MySQL数据库面试问题和答案 我们已经发表了两篇MySQL的文章,非常感谢Tecmint社区的大力支持.这是MySQL面试系列的第三篇文章,并且在面试专栏中排第16. 15个 MySQL 基础面试题,DBA 们准备好了吗? 给中级人员的10个MySQL面试问题 11个MySQL面试问题 因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运

【2017DTC精彩重现】Oracle和MySQL DBA的进阶之路

分享的初衷 这个是参考了朱赟[yūn]的一段话,我觉得已经很透彻形象了,毕竟在短短的几十分钟里,你只能得到一些思想上的建议和思路,落到实处还是得靠自己.而参考和借鉴的过程也是自己修行的过程.第二句我关于坚持,有的同学说坚持是习惯,有的说是毅力,本质上来说,还是坚持的态度,是坚持做一件事情,还是坚持把一件事情做好,两者听起来相似,实则有很大的差别. 分享思路 我分了几个层面来做了一些解读.在本文中会抽取重点列出一些来. Oracle和MySQL的学习周期 其实正如我开篇所说,目前国内的使用有两个比

基于Solr DIH实现MySQL表数据全量索引和增量索引

实现MySQL表数据全量索引和增量索引,基于Solr DIH组件实现起来比较简单,只需要重复使用Solr的DIH(Data Import Handler)组件,对data-config.xml进行简单的修改即可.Solr DIH组件的实现类为org.apache.solr.handler.dataimport.DataImportHandler,在Solr的solrconfig.xml中配置两个handler,配置分别说明如下. 全量索引 solrconfig.xml配置如下: 1 <reque

MYSQL DBA的个人修养

MySQL DBA的个人修养 做为一个MySQL DBA,必须具有以下的素质: blackjack, roulette, slots, slots, blackjack, roulette, casino, blackjack, blackjack, blackjack, slots 一, 身体素质 DBA必须接收和处理各种报警,不论是中午在吃饭或者凌晨三点已经进入深度睡眠.接到报警需要立即进入应急状态,找到电脑,联上网络,快速定位故障原因,并解决之.睡眠不好的同学不太适合当DBA,因为半夜处理