面试疑惑

背景:

前两天参加了鸣鸣很忙的的二面,过程感觉挺好的,结果却出乎意料

过程

  1. 首先自我介绍,我介绍了自己曾经主要负责过的系统,涉及的功能,擅长高并发,批量处理数据,慢sql优化等,因为考虑该岗位可能涉及批量任务下发,我举例说明了自己的一个项目,通过多线程、大事务分割、深分页解决,异常埋点,重试机制等解决了某些问题,面试官问题有哪些亮点,我说我认为主要是功能架构上,因为功能链路本身比较长,在事务分割和重试机制下,要保证整体的一致性,通过一位唯一批号去做好分批控制和整体排布,还有就是相应的表结构贴合设计。
  2. 然后面试官开始拷打八股文,首先问了是b+树,我就聊了b树和b+树,包含都是多路平衡,不需要自平衡,数据位置区别,叶子节点有链表,这样io次数少,适合范围查询查询,查询次数也比较稳定等
  3. 面试官问,慢sql优化方法,我答通过多方面观察,首先从sql层,sql语句进入分析器和优化器分析,通过explain观察执行计划,看是否索引覆盖,索引是否失效,过滤数是多少,看是不是有隐式转换,大的in查询等等导致了索引失效,然后看引擎层,根据实际情况使用隔离级别,一致性要求不强可以使用读未提交,或者使用myisam引擎,是否查询大批的数据,导致buffpool不够进行了多次磁盘io查询,是否是大事务,导致undolog膨胀以及间隙锁过宽导致的事务竞争,还有类似的深分页影响,大部分不需要的数据在引擎层被传递,然后在server层做丢弃,还有order buff等问题,然后看从架构层面,考虑分表,主从或者成熟的分布式数据库tidb等
  4. 面试官问 最左匹配原则,我答innodb底层好像在底层匹配字符串的顺序时候,就是从左开始匹配,比如第一个字符是否相同,然后最左匹配原则,就是在联合索引在查询的时候,要保证最左的索引在查询列,不然可能会失效。
  5. 面试官问,mvcc,我答记得不是很清了,如果有遗漏希望老师补充,mvcc是innodb的一个事务机制,通过undo log,redo log,实现版本控制,通过readview,控制事务之间可以查询到的数据,rr级别,会通过此实现快照读,但是如果使用了当前读的话,可能会有幻读风险。
  6. 面试官问,如何保证代码质量,我说首先要保证需求对清,避免功能是符合需求的,不能被打回,然后,对于细节,比如大对象可能引发gc,对象引用未回收导致oom等要主要,做好幂等性,一致性等,做好测试覆盖。
  7. 然后面试官我问为什么想从外地回到这里,我说本来是就是当地人,目前考虑后续还是回这里定居,贵司的平台够大,我觉得是一个十分可以考虑的机会。
  8. 最后是反问,我问面试官目前这个岗位对应的项目,下一个阶段性的难点是什么,公司有没有培训分享计划,对应该岗位老师有没有指导建议,对应职业规划有没有建议。

结论

整个面试持续了大概30分钟,我的语速比较快,实际回答的可能比上面还乱一点,但思路是差不多的,我个人觉得回答的还可以,但是第二天 主动咨询hr面试结果,却收到说因为技术问题挂了,很迷茫,感觉回答的还行,大佬们能指点下吗,要答成什么样才能有工作,还是说技术点理解错了,目前很挫败。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP