金山办公
一面 10.12 (40min)
1、自我介绍
2、keys命令
3、聚簇索引和非聚簇索引
4、abc联合索引,查c的查找过程(select c from xx where a = 1 and b = 1)
5、找到叶子节点后innodb引擎会做什么,还需要回表么(因为是联合索引,c被覆盖了不需要回表,叶子节点直接拿到)
6、tcp三次握手
7、握手时,客户端不返回ack,不断重新连接,服务端会怎样
8、怎么减缓、应对方法(超时、来源IP哈希判断)
9、HTTP状态码(背不全。。。)
10、token和session、cookie的区别(session服务端存储的一种结构,客户端访问带有cookie进行识别)(说反了。。。)
11、一致性哈希算法(没了解)
12、口述算法,反转链表
13、设计一个直播间弹幕模块,上千个直播间,每个里面上百人,有人发弹幕该直播间其他人都能看见(每个用户维护一个弹幕队列)
14、弹幕如何推送给其他用户(长连接)
15、高并发情况怎么办,怎么优化(每个房间维护弹幕队列)
16、反问
这面试官说话声儿好像老罗哈哈哈哈哈哈
二面 10.23 (30min)
1、自我介绍
2、map和unordered_map底层实现
3、unordered_map总体是什么数据结构(vector+链表,母鸡是不是)
4、平均查找效率
5、红黑树特性
6、深度优先、广度优先区别,递归和非递归实现
7、四次挥手
8、哪些步骤需要消费序列号
9、TCP建立为什么要三次、关闭为什么四次
10、为什么有timewait状态
11、innodb索引底层,为什么用b+树不用红黑或者其他的树
12、select * from a order by id desc limit 10,1和select * from a order by id desc limit 10000,1的区别,哪个更快,为什么(第一个快,后面需要从innodb中拷贝出来的数据多)
13、联合索引(a,b)where a = 1可以使用索引么,b=1可以么
14、MVCC怎么实现的(undolog)
15、僵尸进程和孤儿进程,怎么处理
16、linux进程内存空间分布
17、函数外全局变量放在哪里,函数内部变量放在哪里,new的变量放在哪里
18、select和epoll差别
19、LRU实现
20、100w个无序数字,如何分为相等的两部分,各50w,左边的全比比右边的小,64位数字(二分找到划分点)
21、100个文件,每个文件有1亿个有序数字,不能全部读入内存,如何合并为一个文件(多路归并+堆,选中了哪个文件,然后该文件再放入一个数字,堆的大小可以维护为100)
22、实习
23、对金山的了解
24、反问,业务,建议
HR 11.7
11.17感谢信
投递的广州服务端,不知道是不是排序挂。。。
#24届软开秋招面试经验大赏#