小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 性能测试精华文章

    • 性能测试精华文章
    • 1. 性能测试面试到底问什么
    • 2. JMeter 压测脚本怎么设计
    • 3. 并发用户数和 TPS 怎么理解
    • 4. 响应时间吞吐量错误率怎么分析
    • 5. 性能测试场景模型怎么设计
    • 6. 性能瓶颈定位思路
    • 7. 数据库性能问题怎么排查
    • 8. 服务器监控指标怎么看
    • 9. 性能测试报告怎么写
    • 10. 性能调优建议怎么表达
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

7. 数据库性能问题怎么排查

数据库是性能测试中最常见的瓶颈之一。很多系统应用服务器资源还没打满,响应时间却明显升高,背后往往是慢 SQL、索引缺失、连接池不足、锁等待、数据量过大或数据库 IO 压力。测试人员不一定要像 DBA 一样精通所有数据库内核,但必须能从性能测试角度发现数据库问题,并推动开发或 DBA 定位优化。

面试中问数据库性能问题,重点是看你是否能从现象到 SQL、索引、连接、锁和资源指标逐步排查。

一、数据库性能问题常见现象

常见表现:

  • 接口响应时间升高;
  • TPS 上不去;
  • 应用线程等待;
  • 数据库 CPU 高;
  • 数据库 IO 高;
  • 慢 SQL 增多;
  • 连接数打满;
  • 锁等待;
  • 死锁;
  • 主从延迟;
  • 分页查询很慢。

出现这些现象,要考虑数据库瓶颈。

二、先看慢 SQL

慢 SQL 是最常见问题。

排查点:

  • SQL 执行时间;
  • 执行频率;
  • 是否全表扫描;
  • 是否走索引;
  • 返回数据量;
  • 排序和分组;
  • join 是否合理;
  • 分页是否深分页。

慢 SQL 不是只看单次慢,还要看高频 SQL。一个 SQL 单次 50ms,但每秒执行几千次,也可能造成压力。

三、看执行计划

通过 explain 看 SQL 是否走索引。

关注:

  • type;
  • key;
  • rows;
  • Extra;
  • 是否 Using filesort;
  • 是否 Using temporary。

如果 rows 很大、没有 key、出现全表扫描,就要重点关注。

四、索引问题

常见索引问题:

  • 查询字段无索引;
  • 联合索引顺序不合理;
  • 条件使用函数导致索引失效;
  • like 前置百分号;
  • 隐式类型转换;
  • 查询条件选择性差;
  • order by 未命中索引。

测试人员可以发现现象并提供 SQL、参数、数据量和执行时间。

五、连接池问题

数据库连接池不足会导致请求排队。

表现:

  • 应用 CPU 不高;
  • 响应时间升高;
  • 日志出现等待连接;
  • 连接池 active 打满;
  • 数据库连接数接近上限。

要看应用连接池配置和数据库最大连接数。

六、锁等待问题

高并发写入或更新时容易出现锁等待。

场景:

  • 扣库存;
  • 更新订单状态;
  • 抢券;
  • 账户余额扣减;
  • 批量更新。

表现:

  • 响应时间突然变长;
  • TPS 不稳定;
  • 数据库锁等待增加;
  • 甚至死锁。

七、深分页问题

分页查询页码很大时,可能越来越慢。

例如:

select * from orders order by create_time desc limit 100000, 20;

数据库需要扫描并跳过大量数据。

优化思路通常是基于游标或上次最大 ID 做分页。

八、数据库资源指标

需要关注:

  • CPU;
  • 内存;
  • 磁盘 IO;
  • IOPS;
  • buffer pool 命中率;
  • 连接数;
  • 慢查询数;
  • 锁等待;
  • 主从延迟。

数据库问题不能只看 SQL,也要看整体资源。

九、排查案例

现象:订单查询接口压测时,100 并发响应时间 200ms,500 并发时 95 线超过 5s。

排查:

  1. 应用 CPU 不高;
  2. 日志显示订单查询耗时高;
  3. 数据库慢 SQL 发现 order by create_time desc 的查询;
  4. explain 发现未走索引;
  5. 增加联合索引后复测,95 线明显下降。

这类案例很适合面试表达。

十、面试回答模板

如果面试官问“数据库性能问题怎么排查”,可以这样回答:

数据库性能问题我会先从现象入手,比如接口响应时间升高、TPS 上不去、应用 CPU 不高但请求变慢。然后查看数据库慢 SQL 和执行频率,通过 explain 看是否走索引、扫描行数、是否有 Using filesort 或临时表。接着检查索引是否合理,是否存在函数、隐式转换、like 前置百分号导致索引失效。同时关注连接池是否打满、数据库连接数、锁等待、死锁、磁盘 IO 和主从延迟。如果是分页或排序接口,还会关注深分页和 order by。定位后让开发或 DBA 优化 SQL、索引或连接池配置,并通过复测验证效果。

十一、练习清单

  1. 找慢 SQL;
  2. 看 explain;
  3. 判断是否走索引;
  4. 分析连接池;
  5. 分析锁等待;
  6. 分析深分页;
  7. 看数据库 CPU;
  8. 看磁盘 IO;
  9. 写数据库瓶颈案例;
  10. 准备面试回答。

数据库性能排查的核心是 SQL、索引、连接、锁和资源指标。测试人员要能发现问题、提供证据、推动优化和复测。

配套刷题:

  • 性能测试面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
6. 性能瓶颈定位思路
Next
8. 服务器监控指标怎么看