后端面试 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 + 限流熔断。


相关推荐
码匠许师傅8 小时前
【C++ 面试真题】C++ 的 const 和 constexpr 有什么区别?
c++·面试
BUG研究员_9 小时前
Runnable与LCEL
开发语言·人工智能·python
范什么特西9 小时前
回答知识总结04(redis)
数据库·redis·缓存
正在走向自律9 小时前
使用atop工具监控Linux系统指标
linux·运维·php·实时监控·atop分析内存
码农颜10 小时前
5.4.1 锁分类
java·数据库·mysql
天才测试猿10 小时前
软件测试知识总结(基础篇)
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
云深处@10 小时前
【数据库】MySQL 入门
数据库·学习·mysql
梦远星帆11 小时前
SQLyog社区版下载
数据库·mysql·sqlyog
牛艺翔11 小时前
C++基础
开发语言·c++
键盘会跳舞11 小时前
C++ :容器适配器stack源码级拆解
开发语言·c++··stack·先进后出