虾皮二面面经10.12
1.自我介绍
2.rpc框架具体做了哪些功能,有应用吗
3.项目具体实现哪些功能,用到哪些技术点
4.数据库怎么设计,有哪些表
5.关注表如何设计的
6.这个表的索引是如何设计的
7.关注列表(我关注了哪些人)的计数如何实现
8.千万级用户量的话,这个表怎么改
9.水平拆分
按时间拆,但是计数时很麻烦(且因为这个数据的时间效应不强,所以不是好办法)
解决计数:每次关注时就将计数+1,取关则-1
按用户的id范围拆分,因为不涉及查看哪些人关注我这个功能(粉丝列表),所以可以按用户id范围拆分。但是如果涉及粉丝列表(双向统计,不但要统计我关注了谁,而且要统计哪些人关注了我),就要考虑是按 我 分表还是按 被关注的人 分表
用redis记录count数
10.redis的缓存时如何加载和更新的
11.延迟双删具体是怎么做的
12.缓存有设置过期时间吗
13.出现热key的情况怎么处理
限流
hash分散
14.rabbitmq如何实现的死信队列
15.写题,接雨水(10分钟)
用的按行求
问时间复杂度多少,能不能优化(动态规划?不会)
16.MySQL设置索引时,有没有衡量的标准(要不要对某个字段设置索引)
17.索引提升查询性能的原理是什么,命中索引的底层时如何执行的
18.索引为什么用b+,有什么优点
19.智力题
12个球外观一样的球,有一个质量不一样(可能重可能轻,不确定),还有一个无砝码的天平,如何使用三次天平来找出那个质量不同的球
20.反问
评价
整体不错,基础扎实,但是缺少应用
面试官人不错,有引导,智力题没答出来。其他感觉很好,但是还是挂了。参考之前发的,不会真是电话问题吧?那可太冤了......
timeline
9.7一面,10.12二面,二面完两三天就挂了
#虾皮二面##虾皮#