后端面试 30 道最高频必背题

后端面试 30 道必背高频题(精简答案版)

MySQL(8 道)

  1. **索引为什么用 B+树?**

有序、多叉、IO 少、范围查询快。

  1. **最左前缀原则?**

联合索引从左往右匹配,跳过左边索引失效。

  1. **事务 ACID?**

原子、一致、隔离、持久。

  1. **事务隔离级别?**

读未提交、读已提交(RC)、可重复读(RR)、串行化。

  1. **脏读 / 不可重复读 / 幻读?**

脏读:读到未提交数据

不可重复读:同一事务两次结果不同

幻读:范围查询多出记录

  1. **InnoDB 锁有哪些?**

行锁、表锁、意向锁、间隙锁。

  1. **慢查询怎么优化?**

开慢查询日志 → explain 分析 → 建索引 → 拆大 SQL → 拆长事务。

  1. **大分页 limit 100000,20 怎么优化?**

主键游标分页、延迟关联。


Redis(8 道)

  1. **Redis 为什么快?**

内存操作、单线程、IO 多路复用。

  1. **常用数据结构及场景?**

String/Hash/List/Set/ZSet:缓存、对象、队列、去重、排序。

  1. **缓存雪崩?**

大量 key 同时过期 → DB 压力暴增。

解决:随机过期、集群、缓存预热、降级。

  1. **缓存击穿?**

热点 key 过期。

解决:分布式锁、热点永不过期。

  1. **缓存穿透?**

查不存在的数据。

解决:空值缓存、布隆过滤器。

  1. **Redis 分布式锁怎么实现?**

SET NX EX + Lua 脚本,保证原子性。

  1. **缓存与数据库一致性?**

先更新数据库,再删除缓存。

  1. **Redis 持久化 RDB vs AOF?**

RDB:快照,快,可能丢数据

AOF:日志,安全,文件大


高并发 / 分布式(7 道)

  1. **高并发如何保证系统稳定?**

限流 → 熔断降级 → MQ 削峰 → 缓存 → DB 优化 → 监控扩容。

  1. **限流算法?**

令牌桶(允许突发)、漏桶(匀速)。

  1. **熔断和降级?**

熔断:失败率高停止调用

降级:关掉非核心保核心

  1. **什么是接口幂等?如何实现?**

重复调用结果不变。

唯一ID、去重表、状态机、Redis 防重。

  1. **分布式 ID 方案?**

雪花算法、号段、UUID。

  1. **如何防止库存超卖?**

MySQL 行锁、Redis 预扣、分布式锁。

  1. **线上接口很慢怎么排查?**

日志 → Redis 命中率 → MySQL 慢查询/锁 → MQ 堆积 → 服务器。


MQ(4 道)

  1. **为什么用 MQ?**

异步、解耦、削峰。

  1. **消息丢失如何解决?**

生产者确认 + 消息持久化 + 消费者手动 ACK。

  1. **消息重复消费?**

唯一ID 幂等去重。

  1. **消息堆积怎么办?**

扩容消费者、优化消费逻辑、死信队列。


计算机基础 & 场景题(3 道)

  1. **HTTP 和 HTTPS 区别?**

HTTPS 加密、认证、防篡改。

  1. **GET 和 POST 区别?**

GET 查询、幂等、参数在URL;POST 提交、非幂等、更安全。

  1. **你项目中最难的问题?**

高并发下**锁等待、接口超时、数据不一致**。

方案:索引优化 + 分布式锁 + MQ + 限流熔断。


相关推荐
小高不会迪斯科7 小时前
CMU 15445学习心得(二) 内存管理及数据移动--数据库系统如何玩转内存
数据库·oracle
寻寻觅觅☆7 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
m0_607076607 小时前
CSS3 转换,快手前端面试经验,隔壁都馋哭了
前端·面试·css3
e***8908 小时前
MySQL 8.0版本JDBC驱动Jar包
数据库·mysql·jar
l1t8 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
青云计划8 小时前
知光项目知文发布模块
java·后端·spring·mybatis
赶路人儿8 小时前
Jsoniter(java版本)使用介绍
java·开发语言
NEXT068 小时前
二叉搜索树(BST)
前端·数据结构·面试
NEXT068 小时前
JavaScript进阶:深度剖析函数柯里化及其在面试中的底层逻辑
前端·javascript·面试
ceclar1239 小时前
C++使用format
开发语言·c++·算法