MySQL如何查询正在执行的SQL语句:实用方法与技巧详解
要查询MySQL中正在执行的SQL语句,最直接的方法是使用SHOW PROCESSLIST命令或查询information_schema.processlist系统表,这些工具可以帮助用户实时监控数据库的运行状态,快速定位耗时或阻塞的查询。
通过SHOW PROCESSLIST命令可以查看当前所有连接线程的执行情况,包括SQL语句、执行状态和耗时,在MySQL客户端中输入:

SHOW PROCESSLIST;
这将返回一个列表,其中Info字段显示正在执行的SQL语句,State字段表示线程状态(如“Sending data”或“Locked”),而Time字段则记录执行时间。
更灵活的方式是查询information_schema.processlist表,它提供了类似信息但支持过滤和排序,以下语句可筛选执行时间超过10秒的查询:
SELECT * FROM information_schema.processlist WHERE TIME > 10;
这对于诊断性能问题尤其有用,可以快速发现慢查询或死锁。
MySQL的性能模式(Performance Schema)也提供了高级监控功能,启用后,可通过performance_schema.events_statements_current表获取更详细的执行信息,如SQL文本、执行计划和资源消耗。
关键注意事项:
- 权限要求:执行这些查询通常需要
PROCESS权限,否则可能无法查看其他用户的会话。 - 性能影响:频繁监控可能对数据库产生轻微负载,建议在生产环境中适度使用。
- 结合工具:对于长期监控,可搭配Percona Toolkit或MySQL Enterprise Monitor等工具,实现自动化分析与告警。
通过上述方法,用户可以高效追踪MySQL中的实时SQL执行情况,从而优化数据库性能并解决潜在问题。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/18714.html发布于:2026-09-24





