5 对于有丰富的数据库设计经验
这个对于数据库设计我真的没有太多的经验,我也就只能问问最基础的,mysql中varchar(60) 60是啥含义,int(30)中30是啥含义? 如果他都回答对了,那么我就问mysql中为什么要这么设计呢? 如果他还回答对了,我就继续问int(20)存储的数字的上限和下限是多少?这个问题难道了全部的mysql dba的应聘者,不得不佩服提出这个问题的金总的睿智啊,因为这个问题回答正确了,那么他确实认认真真地研究了mysql的设计中关于字段类型的细节。至于丰富的设计数据库的经验,不用着急,这不我上面还有更加厉害的dba吗,他会搞明白的,那就跟我无关了。
6 关于mysql参数优化的经验。
首先问他它们线上mysql数据库是怎么安装的,如果说是rpm安装的,那么我就直接问调优参数了,如果是源码安装的,那么我就要问编译中的一些参数了,比如以及存储引擎以及字符类型等等。然后从以下几个方面问起:
(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个级别的名字。
关于事务隔离级别简单资料,请参考:
/mchdba/article/details/12837427
8 关于熟悉mysql的锁机制。
那么gap锁,next-key锁,以及innodb的行锁是怎么实现的,以及myisam的锁是怎么实现的等,可惜能准备说出这些的只有一个mysql dba。
9 关于熟悉mysql集群的。
我就问了ndbd的节点的启动先后顺序,再问配置参数中的内存配置几个重要的参数,再问sql节点中执行一个join表的select语句的实现流程是怎么走的?ok,能回答的也只有一个。
关于mysql集群入门资料,请参考:
/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招聘好了没有,如果没有招聘好,万一人家看到这里,全部准备好,那不相当于作弊啊?
我想说的是,我只是说出了想问的知识点,我可没有说答案啊,如果能自己找出所有准确答案的,那也挺不错了,至少这探索精神是有的,不过就算过了我这一关基础知识面试,别忘了,上面还有比我更厉害的dba,他会继续KO你的,他问的东西就比较深入了,要过那一关挺不容易的,要不然刚开始一个月他面试了10多个全部被他pass了,然后他说好麻烦啊先让我把把关把不合格的pass掉,让他省点时间,哈哈,所以我不用担心的。
当然可能是我们公司也比较弱吧,毕竟目前不能跟ali,tx,baidu等真正的mysql dba团队相比,也许真正的基础知识扎实的mysql dba已经投奔它们而去了,在此呼喊下,我们这些互联网公司也是有追求的,特别是在招聘mysql dba这一块,对基础知识很注重的。