一二面都是一个小时左右,三面半小时一面:自我介绍介绍一下实习项目做了什么讲一下怎么优化sql有索引和没有索引的区别mysql事务了解过吗,项目或实习中有接触到吗mysql写入过程中崩溃了,那么这些数据还能恢复吗,怎么恢复呢介绍一下mysql三种日志最左索引介绍自己写的项目dns过程前端从发起请求到最后展示的整个过程如果前端突然断开,后端会发生什么介绍一下负载均衡,负载均衡的几种策略如果前端请求例如/api接口,但是后端没有这个接口,会报什么错如果后端实现这个功能的接口是/test 怎么转发/api请求到/testlinux常用命令redis, mq应用场景用redis做排行榜,一些具体的命令是什么缓存穿透解决redis常用命令考察进程线程区别进程之间的通信方法怎么处理代码中的空指针spring的启动过程用过什么设计模式(这里跟他讲了下策略模式)手撕:给一个数组,找出所有子数组和等于目标值的子数组十分钟后二面:自我介绍代码检查(面试官提前写了一段代码让找错)写两段sql:order表 oid uid price1. 找出uid=1的用户订单最大的一笔订单金额2. 找出订单数量最多的uid场景题, 设计数据库以及其他系统:每天订单新增量100w/d 查询范围一年,怎么设计这个订单系统大概是给出oid,要查总金额这个场景如何分表,分表依据oid生成策略如果分表了如何根据oid知道去查哪个表并发量大的话如何避免哈希碰撞平时如何使用linuxlinux命令:查看某个端口被哪个进程占用;查看磁盘大文件;查找日志里面包含某一字符串的行先cat在grep和直接使用grep的区别,哪个更好如果要对很大的文件内容进行查找用什么方法实习经历,难点,技术点常用git命令手撕:字符串最长回文字符串十分钟后三面:自我介绍拷打项目,最难的技术挑战websocket协议是怎么设计的如果让你去设计网络传输协议,怎么设计以解决粘包,丢包和长连接,并发度问题应用层需要去解决类似粘包之类的问题吗tcp udp区别tcp和udp的包一般来说谁更大(这里我答反了)如果我要发送1T的数据,tcp或者udp能发出去吗 为什么(不会)三次握手,四次挥手都在做什么可以把四次挥手服务器端的两次变成一次吗wait_time知道吗,为什么要有,有这个东西会造成什么影响进程间通信的方式共享内存是什么信号和信号量的区别你的项目如果并发量如果变得特别大,除了增加服务器配置之外有什么解决方法无手撕以上三面好多都回答不上来,感觉要寄还是计网基础太差了许愿还有后续