我想知道是否可以记录(或以其他方式检测)一旦达到 long_query_time 就花费太多时间执行的查询。因为 MySQL 只在慢速查询完成执行时才记录它们。
我知道我可以通过检查 MySQL 管理员的“服务器连接”选项卡在完成之前看到缓慢的查询,但我希望在发生这种情况时自动收到通知(使用日志更容易)。
最佳答案
如果您愿意轮询数据库以检查查询运行时间是否超过 x 秒,则可以使用 show processlist ,或直接前往process list table .
select * from INFORMATION_SCHEMA.PROCESSLIST where time > TIME_IN_SECS
这会给数据库增加更多的负载,所以我不建议每秒都这样做。但这意味着“一旦达到 long_query_time”,您将无法获得信息。
关于mysql - 实时记录MySQL慢查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17033482/