写这篇主要是想复盘一下我的两次面试经历,一个是B站的后端开发岗,另一个是百度的搜索研发。文章涵盖了MySQL、Golang、 计算机网络、Elasticsearch、 分布式、搜索的一些知识。

1.你之前是负责搜索的,那我想听一下你们搜索系统的大致流程
说实在还挺惊讶面试官会问这个的,因为对方是一个后端工程师,所以就没讲多细致,答得很general,大体来说就是,query分析->粗排召回->精排算特征-> learning to rank计算score ->返回结果,每个再展开来说一些即可。面试官问这个相当于在问项目,确定简历的真实性,所以这个没啥参考价值。
2.MySQL的事务隔离级别有哪些?
总共是四大隔离级别,理解以后用自己的话答就好了
面试官还是比较满意这个答案的,但接下来面试官问道:
3.以上事务隔离是如何实现的?
老实回答,这题我不会,面试官提示MVCC,我还是不会hhh。回去翻了一些资料,在这里补充一下答案。所谓的MVCC就是MultipleVersion Concurrency Control,多版本并发控制,从名字上也可以看出来,它是使用版本号来对数据进行并发控制的。实际上,在数据表的每一列,都存储两个隐藏列,一个是trx_id,代表事务的ID,另一个是roll_pointer,指向其上一个版本的记录,如此组成一个记录的版本链,接下来就可以讲ReadView了,它存储着一种用来记录当前活跃状态的读写事务,用于判定该transaction可见到的数据版本。
4.MySQL索引的原理是什么

文章讲述了作者在B站后端开发和百度搜索研发岗位的面试经历,涉及的问题包括搜索系统流程、MySQL的事务隔离级别与实现、索引原理、存储引擎、URL到浏览器展示的过程、Redis数据类型及过期策略、Goroutine的轻量级特性以及Golang的垃圾回收机制。作者还分享了限流器的实现原理和面试技巧。
答案分析分享&spm=1001.2101.3001.5002&articleId=129580316&d=1&t=3&u=08e3f01748ba46dfb95e0fb7cbd66b9c)

被折叠的 条评论
为什么被折叠?



