上周领导会议室找到我说,你给咱出两套面试题吧,主要包含运维和数据库方面的,不要太难,否则一个人也招不进来。其实打心里我是不太愿意的,这个度不太好把握。太难了,招不进来人。太简单了,又不行。杂办呢,没办法,硬着头皮上呗。也是大姑娘上花轿头一遭。
谁让咱也是互联网大军中普通的一员呢?没办法,问题总归是要解决的。于是我和领导沟通了一下,看看面试对象主要是针对哪个群体的,是应届毕业生呢,还是毕业两三年的,或者是五年以上的老司机。领导说数据库方面的你尽量给咱整简单点,主要是面向应届毕业生的,运维主要针对工作三年以内的。噢,我大概明白了。
其实,数据库方面出的也挺简单的。主要是给应届生的。不妨看看你会不会?主要还是关系型数据库的,非关系数据库就没敢出,公司担心应届生拿不下来。我想想也是,刚毕业的时候哪里能知道那么多。我自己就是最好的例子。
1、 关系型数据库中求最大、最小、平均、求和、计数的函数分别是什么?(只需写出函数名即可)
2、考了一些增删改查。比如这种的:
select a.stuNo,a.stuName,count(cNo),sum(score) from student a,score b
where a.stuNo=b.stuNo
group by a.stuNo,a.stuName
select stuNo,avg(score)from score
group by stuNo
having avg(score)>60
3、左连接(left)和右连接(right)的区别。
4、在 SQL语句中 null 和空的区别是什么?请详细说明。
5、什么是数据库事务?事务都有什么特征?
6、什么是数据库的锁?锁出现的目的主要用来处理什么问题?从数据库层面来说分为哪几类锁?
7、列出你了解得所有关系型数据库和非关系型数据库都有哪些?
8、请详细说明一条查询select语句在数据库中发出后,都具体发生了什么过程?
9、列举出你认为 SQL优化具体常用的方法和思路。
其实也不要求有太多的实操,主要还是考察的是思路。结果面试了四五个,都说题答的不是那么理想,难道题稍微有点太难了?不应该。不过站在别的角度上来说也可以理解,毕竟经验都是堆积出来的,说也不是天生下来就会的。有了一个好的平台,认真去边工作边学习还是可以进步很快的。在这里也期望面试通过的同学进来可以好好珍惜这个不错的平台,虽然也辛苦,但是最起码付出了有实际丰厚的回报。
运维方面的也是,并没有出很难得,就是一些常用的 Linux 命令,因为现在公司用的是自研的 Linux 系统,这个还是比较看重的。比如常用的一些服务器诊断命令、常用的监控、数据库的增删改查等。比如在面试题里直接上了这张图,是上次一个微信群里运维同道提出来的问题,让通过这张图分析一下当下服务器状态。我觉得挺不错就加到了面试题中。
结果当时都是工作三年左右的回答的不是那么理想,其实单从这张图可以看到内核调用比较频繁,io 等待比较高,还没有用到 swap,cpu相对来说 比较空闲。这两个才是致命的要点。
很多时候,无需要那么多高大上的技术,其实一家公司给不给机会,往往考出来的都是一些比较常用但是要扎实的那种。所以建议大家还是多抓抓基础。
因为出题也是大姑娘上花轿头一遭,难免有不合理的地方。也是在不断的摸索中,期待下次能够有更好的表现。
面试没有进来的朋友们,再这里也说一声抱歉了。进来的朋友也期望能够好好学习,我们一起交流共同进步。
把公司的事情当做自己的事情认真做好就够了。
只是为了一个承诺,我还在坚持着。期望到时候可以给兑现期权。但是当下还是踏踏实实的做好自己手头的事情吧。也祝大家越来越好。