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


相关推荐
Hiter_John11 小时前
Golang的变量常量初始化
开发语言·后端·golang
小肥君11 小时前
gpu安装milvus问题解决
java·eureka·milvus
梦想的颜色11 小时前
MySQL 数据存储结构与查询执行生命周期深度解析
运维·数据结构·数据库·mysql·线程·优化
砍材农夫11 小时前
物联网实战:Spring Boot MQTT | 模拟器Paho客户端拆解高性能
java·javascript·spring boot·后端·物联网·struts
电商API_1800790524711 小时前
免 TOP 入驻,第三方淘宝商品详情 API 快速接入与代码示例
java·大数据·开发语言·数据库·爬虫·数据分析
IT空门:门主11 小时前
Java AI 开发框架终极对比:Spring AI vs Spring AI Alibaba vs AgentScope-Java
java·人工智能·spring·spring ai·ai alibaba·agentscope-java
c2385611 小时前
C++列表初始化与变量类型推导
开发语言·c++
代码小库11 小时前
【2026前端最新面试题——day10】JavaScript 高频面试题
开发语言·前端·javascript
神龙斗士24011 小时前
增删改查操作
数据库·mysql
零陵上将军_xdr11 小时前
后端转全栈学习-Day4-JavaScript 基础-2
开发语言·javascript·学习