在JMeter中如何删除DB中的数据?执行删除查询成功但数据未删除怎么办
常见排查方案
- 检查事务提交状态
大部分关系型数据库的非自动提交事务模式下,DELETE语句执行成功仅代表当前会话的事务内操作生效,未执行COMMIT就断开会话的话,所有修改会自动回滚。你可以在删除语句末尾追加COMMIT;重新测试,或确认你使用的测试工具是否开启了自动提交配置。 - 核对删除语句的匹配范围
如果你的删除语句携带WHERE过滤条件,可将语句中的DELETE替换为SELECT COUNT(*),保留完全一致的过滤条件执行,若返回行数为0,说明你的过滤条件没有匹配到任何测试数据,自然不会有删除效果。 - 确认操作的库表和权限符合预期
- 确认你执行删除语句的数据库实例、库名、表名和性能测试写入数据的目标一致,注意部分环境下库表名区分大小写,拼写疏漏会导致操作到错误的对象
- 验证当前数据库账号是否有对应表的真实删除权限,部分权限配置会返回执行成功但拦截实际修改操作,你可以手动执行
DELETE FROM <你的测试表名> WHERE <明确存在的行条件>;后查询对应行是否被删除,验证权限有效性
- 确认性能测试阶段确实写入了数据
先在性能测试执行完成后,手动查询目标表是否存在测试数据,排除压测脚本本身没有成功写入数据的可能性。
内容的提问来源于stack exchange,提问作者Volodymyr Kabernyk
相关产品推荐
相关产品推荐

