暑假肯吃苦,秋招猛如虎
最近秋招的面试陆陆续续的开始了,群里也有不少朋友要不同的面经,为了帮助大家更好地准备面试,今天和大家分享一下来自粉丝的面经投稿。
他在最近半个月内疯狂的面试,一共进行了多次面试。
接下来,我们将一起探讨如何准备面试,以及如何借鉴他人的成功经验,为你的秋招做好充分准备。
广州潮游互娱
- 自我介绍
- 门票超卖问题解决(实际上没有用到redis锁,但是回答的时候还是答了,答得不好,下次还是直接回答用mysql行锁)
- mysql锁了解吗?
- mysql索引?字段建立索引的考虑
- 使用gin实现反向代理?
- 使用第三方库httputil.ReverseProxy方法实现反向代理
- nginx负载均衡?
- 轮询、加权轮询,ip-hash
- 轮询(默认):每个请求按时间顺序依次分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
- 加权轮询:在轮询的基础上,可以指定权重,权重高的服务器分配更多的请求
- ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session问题。
- 附近健身站点的实现?
- es的geo-distance可以实现搜索固定距离为圆心内的文档,并且可以实现按照距离排序
- 防sql注入了解吗?
- 参数化查询是防止SQL注入的最有效手段之一。通过使用预编译语句(例如,在Java中使用PreparedStatement),可以确保用户输入被当作参数处理,而不是SQL语句的一部分?是参数的占位符,实际的参数值将在执行时绑定,因此不会被解释为SQL代码的一部分
三七互娱
- 19笔试30道选择题
- 关于项目管理的知识
- 网络ip地址知识
- mysql事务级别,exlpain中的extra字段
- http和udp基本知识
- redis集群模式,持久化机制rdb和aof相关问题
- 项目测试,边界值测试取值
- linux命令,创建目录参数,查看域名解析记录dig命令,cat命令参数,截取命令cut
- golang的defer,字符串拼接等基础语法
- oltp(注重事务,关系型数据库)和olap(注重分析,对响应要求不高)说法考查
- 小根堆考查
其他题目
- ip地址由几位二进制数组成?(32)
- redis集群模式?(ap)
- clickhouse说法不正确的是?(clickhouse有四种事物隔离级别)
- 分布式session共享,宕机时会导致session丢失的是?(nginx ip hash)
- 不属于负载均衡产品的是?(lVS)
- 不属于白盒测试方法的是?(边界值分析)
- olap和oltp数据库的说法?(olap注重分析,不关注响应时间;oltp注重事物,对响应时间要求高,例如关系型数据库)
- redis持久化?(rdb是将快照拷贝到磁盘上,aof是记录命令日志文件)
- cat命令参数?(-d?-u?)
- mysql的explain命令中Extra字段的具体含义?
- Using index:表示目前的查询语句,使用了索引覆盖机制拿到了数据。
- Using where:表示目前的查询语句无法从索引中获取数据,需要进一步做回表去拿表数据。
- Using temporary:表示MySQL在执行查询时,会创建一张临时表来处理数据。
- Using filesort:表示会以磁盘+内存完成排序工作,而完全加载数据到内存来完成排序。
- Select tables optimized away:表示查询过程中,对于索引字段使用了聚合函数。
- Using where;Using index:表示要返回的数据在索引中包含,但并不是索引的前导列,需要做回表获取数据。
- NULL:表示查询的数据未被索引覆盖,但where条件中用到了主键,可以直接读取表数据。
- Using index condition:和Using where类似,要返回的列未完全被索引覆盖,需要回表。
- Using join buffer (Block Nested Loop):连接查询时驱动表不能有效的通过索引加快访问速度时,会使用join-buffer来加快访问速度,在内存中完成Loop匹配。
- Impossible WHERE:where后的条件永远不可能成立时提示的信息,如where 1!=1。
- Impossible WHERE noticed after reading const tables:基于唯一索引查询不存在的值时出现的提示。
- const row not found:表中不存在数据时会返回的提示。
- distinct:去重查询时,找到某个值的第一个值时,会将查找该值的工作从去重操作中移除。
- Start temporary, End temporary:表示临时表用于DuplicateWeedout半连接策略,也就是用来进行semi-join去重。
- Using MRR:表示执行查询时,使用了MRR机制读取数据。
- Using index for skip scan:表示执行查询语句时,使用了索引跳跃扫描机制读取数据。
- Using index for group-by:表示执行分组或去重工作时,可以基于某个索引处理。
总结
我们可以看见,这部分的面经覆盖了一系列技术问题和技术深度的考察。面试一方面侧重于Go语言基础、网络基础知识、数据库以及Gin框架的使用。另一方面则涉及了MySQL锁机制、Redis集群与持久化、索引优化,以及Nginx负载均衡策略等的理解。
其中值得注意的是,面试中提到了多个具体知识点,几乎什么都问到了,并且难度都步步上升,想通过面试必须学习众多的知识点。
祝早日上岸!
欢迎关注 ❤
我的文章都首发在同名公众号:王中阳
转载自:https://juejin.cn/post/7390588322769387556