【转】MYSQL DBA知识了解-面试准备
http://www.itpub.net/forum.php?mod=viewthread&tid=1825849
公司招聘MySQL DBA,也面试了10个2年MySQL DBA工作经验的朋友,谈谈自己的心得,欢迎大家指点。
1 2年MySQL DBA经验
其中许多有水分,一看到简历自我介绍,说公司项目的时候,会写上linux系统维护,mssql server项目,或者oracle data gard项目,一般如果有这些的话,工作在3年到4年的话,他的2年MySQL DBA管理经验,是有很大的水分的。刚开始我跟领导说,这些不用去面试了,肯定mysqldba经验不足,领导说先面面看看,于是我就面了,结果很多人卡在基础知识这一环节之上,比如:
(1)有的卡在复制原理之上
(2)有的卡在binlog的日志格式的种类和分别
(3)有的卡在innodb事务与日志的实现上。
(4)有的卡在innodb与myisam的索引实现方式的理解上面。
.........
关于基础知识考查点,请参考我整理的基础面试点总结: http://blog.csdn.net/mchdba/article/details/13505701
个人觉得如果有过真正的2年mysql专职dba经验,那么肯定会在mysql的基本原理上有所研究,因为很多问题都不得不让你去仔细研究各种细节,而自己研究过的细节肯定会记忆深刻,别人问起一定会说的头头是道,起码一些最基本的关键参数比如Seconds_Behind_Master为60这个值60的准确涵义,面试了10+的mysql dba,没有一个说的准确,有的说不知道忘记了,有的说是差了60秒,有的说是与主上执行时间延后了60秒。
2 对于简历中写有熟悉mysql高可用方案
我一般先问他现在管理的数据库架构是什么,如果他只说出了主从,而没有说任何ha的方案,那么我就可以判断出他没有实际的ha经验。不过这时候也不能就是断定他不懂mysql高可用,也许是没有实际机会去使用,那么我就要问mmm以及mha以及mm+keepalived等的原理实现方式以及它们之间的优势和不足了,一般这种情况下,能说出这个的基本没有。
3 对于简历中写有批量MySQL 数据库服务器的管理经验
这个如果他说有的话,我会先问他们现在实际线上的mysql数据库数量有多少,分多少个节点组,最后问这些节点组上面的slow log是如何组合在一起来统计分析的。如果这些他都答对了,那么我还有一问,就是现在手上有600台数据库,新来的机器,Mysql都安装好了,那么你如何在最快的时间里面把这600台mysql数据库的mysqld服务启动起来。这个重点在于最快的时间,而能准确回答出清晰思路的只有2个人。
4 对于有丰富的SQL优化的经验
首先问mysql中sql优化的思路,如果能准备说出来,ok,那么我就开始问explain的各种参数了,重点是select_type,type,possible_key, ref,rows,extra等参数的各种值的含义,如果他都回答正确了,那么我再问file sort的含义以及什么时候会出现这个分析结果,如果这里他也回答对了,那么我就准备问profile分析了,如果这里他也答对了,那么我就会再问一个问题,那是曾经tx问我的让我郁闷不已的问题,一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。
关于explain的各种参数,请参考:http://blog.csdn.net/mchdba/article/details/9190771
5 对于有丰富的数据库设计经验
这个对于数据库设计我真的没有太多的经验,我也就只能问问最基础的,mysql中varchar(60) 60是啥含义,int(30)中30是啥含义? 如果他都回答对了,那么我就问mysql中为什么要这么设计呢? 如果他还回答对了,我就继续问int(20)存储的数字的上限和下限是多少?这个问题难道了全部的mysql dba的应聘者,不得不佩服提出这个问题的金总的睿智啊,因为这个问题回答正确了,那么他确实认认真真地研究了mysql的设计中关于字段类型的细节。至于丰富的设计数据库的经验,不用着急,这不我上面还有更加厉害的dba吗,他会搞明白的,那就跟我无关了。
6 关于mysql参数优化的经验。
首先问他它们线上mysql数据库是怎么安装的,如果说是rpm安装的,那么我就直接问调优参数了,如果是源码安装的,那么我就要问编译中的一些参数了,比如my.cnf以及存储引擎以及字符类型等等。然后从以下几个方面问起: (1)mysql有哪些global内存参数,有哪些local内存参数。 (2)mysql的写入参数需要调整哪些?重要的几个写参数的几个值得含义以及适用场景,比如innodb_flush_log_at_trx_commit等。 (3)读取的话,那几个全局的pool的值的设置,以及几个local的buffer的设置。 (4)还有就是著名的query cache了,以及query cache的适用场景了,这里有一个陷阱,就是高并发的情况下,比如双十一的时候,query cache开还是不开,开了怎么保证高并发,不开又有何别的考虑?
7 关于事物隔离级别。
这个最起码你得知道那4个隔离级别的名字吧,以及之间的区别,还有你当前自己数据库里面设置的是哪个级别吧,可惜的是面试了那么多,能准备想都不用想的回答出的就只有一个,而且他只说出了前3个级别的名字。 关于事务隔离级别简单资料,请参考:http://blog.csdn.net/mchdba/article/details/12837427
8 关于熟悉mysql的锁机制。
那么gap锁,next-key锁,以及innodb的行锁是怎么实现的,以及myisam的锁是怎么实现的等,可惜能准备说出这些的只有一个mysql dba。
9 关于熟悉mysql集群的。
我就问了ndbd的节点的启动先后顺序,再问配置参数中的内存配置几个重要的参数,再问sql节点中执行一个join表的select语句的实现流程是怎么走的?ok,能回答的也只有一个。 关于mysql集群入门资料,请参考:http://write.blog.csdn.net/postlist/1583151/all
10 关于有丰富的备份经验的
就问mysqldump中备份出来的sql,如果我想sql文件中,一行只有一个insert .... value()的话,怎么办?如果备份需要带上master的复制点信息怎么办?或者xtrabackup中如何做到实时在线备份的?以及xtrabackup是如何做到带上master的复制点的信息的? 当前xtrabackup做增量备份的时候有何缺陷? 能全部回答出来的没有一个,不过没有关系,只要回答出mysqldump或者xtrabackup其中一个的也可以。
11 关于有丰富的线上恢复经验的
就问你现在线上数据量有多大,如果是100G,你用mysqldump出来要多久,然后mysql进去又要多久,如果互联网不允许延时的话,你又怎么做到恢复单张表的时候保证nagios不报警。如果有人说mysqldump出来1个小时就ok了,那么我就要问问他db服务器是啥配置了,如果他说mysql进去50分钟搞定了,那么我也要问问他db机器啥配置了,如果是普通的吊丝pc server,那么真实性,大家懂得。 然后如果你用xtrabackup备份要多久,恢复要多久,大家都知道copy-back这一步要很久,那么你有没有办法对这一块优化。
【转】MYSQL DBA知识了解-面试准备的更多相关文章
- MySQL DBA面试全揭秘
来源:http://ourmysql.com/archives/1426 本文起源于有同学留言回复说想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧. MySQL DBA ...
- [转]MySQL DBA面试全揭秘
本文起源于有同学留言回复说想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧. MySQL DBA职位最近几年特别热门,不少朋友让我帮忙推荐什么的,也有很多公司找不到合 ...
- 我心中的MySQL DBA
原文网址链接:http://wangwei007.blog.51cto.com/68019/1718311 MySQL是一个跨平台的开源关系型数据库管理系统,目前MySQL被广泛地应用在Interne ...
- MySQL DBA修炼秘籍
0.导读 本文主要写给那些立志成为MySQL DBA,以及正在学习MySQL的同行们,结合个人及业内其他同行的职业发展经历给大家一些参考,如何成为合格的MySQL DBA. 1.什么是MySQL DB ...
- MySQL 基础知识梳理
MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...
- Mysql DBA 20天速成教程,DBA大纲
Mysql DBA 20天速成教程 基本知识1.mysql的编译安装2.mysql 第3方存储引擎安装配置方法3.mysql 主流存储引擎(MyISAM/innodb/MEMORY)的特点4.字符串编 ...
- 走向DBA[MSSQL篇] 面试官最喜欢的问题 ----索引+C#面试题客串
原文:走向DBA[MSSQL篇] 面试官最喜欢的问题 ----索引+C#面试题客串 对大量数据进行查询时,可以应用到索引技术.索引是一种特殊类型的数据库对象,它保存着数据表中一列或者多列的排序结果,有 ...
- 阿里巴巴MySQL DBA面试题答案[转]
无意中看到阿里巴巴的面试题,,借此回首DBMS时刻趁热打铁巩固一下基础 拿到题目大概浏览了一遍难度大概在中上游水平,自己跪了接近35%的题目 自己答题如下,欢迎大家讨论分析题 1 2 3 4 5 6 ...
- Mysql DBA 20天速成教程
Mysql DBA 20天速成教程 基本知识1.mysql的编译安装2.mysql 第3方存储引擎安装配置方法3.mysql 主流存储引擎(MyISAM/innodb/MEMORY)的特点4.字符串编 ...
随机推荐
- WPF 中模拟键盘和鼠标操作
转载:http://www.cnblogs.com/sixty/archive/2009/08/09/1542210.html 更多经典文章:http://www.qqpjzb.cn/65015.ht ...
- JavaScript实现模糊推荐的input框(类似百度搜索框)
如何用JS实现一个类似百度搜索框的输入框呢,再填充完失去焦点时,自动填充配置项,最终效果如下图: 实现很简单,但是易用性会上升一大截,需要用到的有jquery-ui的autocomplete,jque ...
- 【Java核心】ClassLoader原理及其使用
又把博客的皮肤换了换,看着更加简洁舒心一些.前段的知识只是略懂,拿过来就能用,只是自己的审美和设计水平有限,实在难以弄出自己特别满意的东西,也算是小小的遗憾吧!言归正传,由于最近涉及到Java核心的东 ...
- (@WhiteTaken)设计模式学习——观察者模式
忙里抽闲,继续学习设计模式,作为自己的读书笔记,这次介绍Java下实现的观察者模式. 观察模式需要了解的三个概念: 被观察者:被观察的对象,发生变化会通知观察者集合(存放观察者的容器) 观察者:有up ...
- js 关于性能的数据存储
1.JavaScript中四种基本数据存取位置:字面量,本地变量,数组元素,对象成员.(四个都是存在于内存中) 一般来说:[字面量,局部变量]运行速度>[数组,对象成员] 2.内部属性包含了一个 ...
- PHP设计模式三:原型设计模式
一.什么是原型设计模式 原型设计模式使用一种克隆技术来复制实例化的对象,新对象是通过复制原型实例创建的.原型设计模式的目的是通过使用克隆以减少 实例化对象的开销. 在原型设计模式中,Client类是不 ...
- 重温C语言小感
这周对我感触比较大的就是重温了下C语言,当然重点还是放到了指针那块,一看到指针就想到了链表,还有那个 指针申明,“函数指针”,“指针函数”, “使用指针实现数组降维数”,还有就是大学初学编程的点滴. ...
- 磨刀不误砍柴工!vs2010快捷键大全
最常用的快捷键: VS2012变化的快捷键: 注释::VS2010是(Ctrl+E,C),VS2012是(Ctrl+K, Ctrl+C),实际操作,按住Ctrl键不放,先按K键,再按C键.相当于Ctr ...
- mysql开启慢查询日志以及查看(转载自网络)
转载自http://database.51cto.com/art/201309/410314_1.htm
- PAT-甲级-1002
1.来,先看题,https://www.patest.cn/contests/pat-a-practise/1002. 2.需要注意的地方只有一个:两个多项式相加之后,系数可能为零,这些项不应该出现在 ...