暑假肯吃苦,秋招猛如虎
最近秋招的面试陆陆续续的开始了,群里也有不少朋友要不同的面经,为了帮助大家更好地准备面试,今天和大家分享一下来自粉丝的面经投稿。
他在最近半个月内疯狂的面试,一共进行了多次面试。
接下来,我们将一起探讨如何准备面试,以及如何借鉴他人的成功经验,为你的秋招做好充分准备。
广州潮游互娱
自我介绍
门票超卖问题解决(实际上没有用到 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 负载均衡策略等的理解。
其中值得注意的是,面试中提到了多个具体知识点,几乎什么都问到了,并且难度都步步上升,想通过面试必须学习众多的知识点。
祝早日上岸!
欢迎关注 ❤
我的文章都首发在同名公众号:王中阳
需要简历优化或者就业辅导,可以直接加我微信:wangzhongyang1993 , 备注:infoQ
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/5a2f1f02debf3239226d20537】。文章转载请联系作者。
评论 (1 条评论)