之前说道(http://www.cnblogs.com/carsonzhu/p/5867823.html)在网易招聘官网不小心投递错了岗位:数据库管理工程师,结果笔试后收到了去杭州面试的通知,虽然岗位不对,但还是打算珍惜这个机会,去体验一把,毕竟路费也是可以报销的!
在面试前一天也是很认真地总结了一遍数据库的面试知识点,发现工作量还是有些巨大,感觉怎么也不可能在一个晚上就全部准备充分。so,尽管如此,还是义无反顾地奔赴杭州(有这样的机会也是缘分)吧!
到达滨江区网易公司后,发现工作环境确实挺不错,唯一的缺点就是不像上海那样隔一段就至少有一家全家啥的便利店,导致买瓶水喝都挺困难,只能叫外卖!签完到之后,等待的间隙中遇到一个妹子向我搭讪,问我有没有玩过游戏,比如说RPG类的,有什么体验心得等。交流的过程中发现妹子是浙大学心理学的硕士,本科也是上海的,交大吧,报的是用户分析的岗位。
进入正题吧,面试的过程是这样的:
首先,我拿出简历给面试官,然后做了简要的自我介绍。
->面试官问我,为什么的简历上的求职意向是软件工程师?
我便向他解释,软件开发是我的主要求职意向,不过之前的实习或项目经历中涉及数据库的东西比较多,由于得到了数据库管理工程师的面试机会,想尝试一下!
->那谈谈你对数据库管理工程师这个岗位的理解?
这个问题我理解成数据库开发工程师的职责了,于是说,主要职责是设计和开发数据库管理系统。这里他并没有纠正我,后面他跟我说数据库管理工程师是从事管理和维护数据库管理系统(DBMS) 的相关工作人员的统称,他属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。意思就是偏运维,实际操作型的工作会比较多,我这才立马反映过来了。
->看你的简历,用过mysql是吧,用的什么版本?
我说用的5.6
->那有用过5.1,5.5等版本吗?他们之间有什么区别?
参考:MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要区别
->常用的存储引擎是啥?谈谈你对熟悉的几个存储引擎的理解?
我说最常用的是InnoDB (参考:MySQL存储引擎总结 或 四种mysql存储引擎 )
->事务知道吧?谈谈你对它的理解?
讲了事务的概念,及它的ACID特性(即原子性,一致性,隔离性,持久性)
->如果我想删除一个表中的数据内容,不删除其表结构,该怎么做?如果既删除表内容又删除表结构呢?
这里主要谈论了truncate,delete和drop的区别(参考:SQL truncate 、delete与drop区别)
->知道多版本并发控制(MVCC)吗?谈谈你对它的理解?画个图看看解释看看
我说多版本并发控制是并发控制的方法之一(参考:mysql的mvcc(多版本并发控制))
->数据库的隔离级别?MySQL的默认事务隔离级别是哪个?如何解决脏读?
大多数的数据库系统的默认事务隔离级别都是:Read committed
而MySQL的默认事务隔离级别是:Repeatable Read
参考:数据库事务隔离级别
->知道https,说说它和http的区别?
http+SSL
->你用github吗?上面的代码量是多少?怎么fork别人的代码进行修改提交,写出此过程的命令?
->你所熟知的git命令写一写?
->linux中寻找某个字符串出现的次数,写出它的命令?说说你对awk,find,grep的了解?
->知道crontab 定时执行任务吗?说说它具体是怎么用的?
->怎么在linux中查看内存,cpu等信息?
->问到在学校做的项目:什么是主数据?主数据管理是干嘛的?主数据管理的难点在哪?有什么理论深度?
->db2的安装过程
->谈到我面的岗位一般是C++,于是问我:C++中的内存泄漏怎么检测和处理?用的什么工具?
整个面试过程进行了一个小时左右,面试官真的很好,有的知识点我理解的不够的时候他都一直提醒我不要紧张,还一直引导我,说我很有勇气来面这个错投的岗位,说其实只要你这方面的基础足够扎实也是可以要你的,很多东西需要日常熟练的操作,毕竟这个岗位是运维类的,平时要多注重操作!真的是非常感谢他,虽然最终的结果显然是不能进入二面,但还是收获不少!
--感谢生命中每一个让你成长,给你收获的人!!